2013-04-16 58 views
2

我有一个问题。如何处理ASP.net MVC Ajax加载页面上的jQuery事件?

我是jQuery Mobile世界的新手,并且ASP.Net MVC部分我有点迷路。

这里是我的问题:在我的移动网站,我想改变导航栏(我使用更像是一个appbar)按钮,而我在编辑页面,或家庭等....

因此,那些页面(编辑,显示)被装载在阿贾克斯,并在这些网页上我试图火象的事件:

$(document).ready(function(){ 
    alert("Hello !"); 
}); 

但一些期试验研究后,我发现,在JQM与阿贾克斯,事件没有按” t工作方式,但更像这样:

$(document).bind('pageinit', function(){ 
    alert("Hello !"); 
}); 

但是这对我不起作用(每个页面都会改变事件被激怒),也许是因为在ASP.Net MVC Mobile中我们只有一个data-role="page",其余的内容在data-role="content"中被加载到ajax中,所以我真的不知道我的“Ajax Loaded Kind of Page”加载时如何触发事件?

我曾试图住/绑定在这些页面上的一个的列表视图但是,这并不工作,要么:

$("[data-role='listview']").live('pageinit', function() { 
    alert("hello"); 
}); 

更精确地了解我想要做的事: 在ASP。网络MVC,我的布局(谁是他的共同页面)有divdata-role="page"属性。这个数据角色对于我的所有应用程序都是独一无二的,需要处理它。 但事实是,当我在我的代码加载其他ASP.Net MVC页:

<div data-role="page" >
<div data-role="content"> Here my ASP.Net MVC Page</div>
</div>

我不能使用$(document).bind('pagenit'),因为我不加载页面(数据-role = page),但只是data-role="content"的一部分。

如果您有任何想法,我会很高兴听到(更多阅读)它,如果我的英语不是真正“可以理解的”,请提前致谢。

+0

您使用什么方法将数据加载到您的内容中? – Gajotres

+0

这是我的ASP.Net MVC控制器返回给我一个View cshtml,这个视图是通过我的布局中的jQuery移动添加的。

@RenderBody()
Romain

回答

0

Jquery Mobile通过AJAX获取视图并显示它。由于这个原因,一般事件因AJAX呼叫而错过了。

最好的办法是禁用阿贾克斯每一个表格,你需要在每个重定向呼叫提以及

data_ajax =“假”

一旦它成为一个常规电话,所有的jQuery的事件正常工作!