Asp.net mvc jQuery在IE9的第一次尝试中不起作用;按F5(刷新)时,它工作

Asp.net mvc jQuery在IE9的第一次尝试中不起作用;按F5(刷新)时,它工作,asp.net-mvc,internet-explorer,jquery-mobile,Asp.net Mvc,Internet Explorer,Jquery Mobile,(我已经问过这个问题;我在这里补充更多细节) 我返回了一个jQuery,它返回在更改事件的输入元素中输入的文本。这个jQuery在FireFox中运行良好,但在InternetExplorer(IE9)中失败 $(文档).ready(函数(){ $(“#用户名”).change(函数(){ 警报(“输入的文本为:+$(“#用户名”).val()); }); }); 1) 我正在使用ASP.NETMVC;为了达到上面的jquery页面,我使用Html.ActionLink 2) 在IE上,当我

(我已经问过这个问题;我在这里补充更多细节)

我返回了一个jQuery,它返回在更改事件的输入元素中输入的文本。这个jQuery在FireFox中运行良好,但在InternetExplorer(IE9)中失败


$(文档).ready(函数(){
$(“#用户名”).change(函数(){
警报(“输入的文本为:+$(“#用户名”).val());
});
});
1) 我正在使用ASP.NETMVC;为了达到上面的jquery页面,我使用Html.ActionLink

2) 在IE上,当我到达上面jQuery页面时,它不工作;但当我按F5并刷新页面时,它就工作了

3) 在Firefox上,我不需要刷新页面;第一次尝试就成功了

请帮助…

美元(document).ready()事件取决于一个名为DOMContentLoaded的事件(在Chrome中,并不确定firefox,但它有名字)

一旦加载HTML并引入所有相关文件(CSS和JS文件),就会触发此事件。。Chrome、Safari(WebKit)和Firefox(Gecko)在触发这一特定事件时是可以预测的。它像发条一样在堆栈中冒泡,一旦被抓住,你就可以摆弄它,因为所有人都关心它

然而,就IE而言,直到第7版(我认为)他们都没有实现过这个事件。鉴于此,最新版本中的实现也没有那么高效

我一次又一次地面对这个问题

每次都有效的一种解决方法是在HTML末尾手动触发事件:

<script type="text/javascript">
try{jQuery.ready();}catch(e){}
</script>

试试{jQuery.ready();}catch(e){}
希望这有帮助

编辑
查看事件是否被触发的一个好方法是在代码中添加某种操作。比如:

<script>
      $(document).ready(function () {
          alert("Loaded");
          $("#UserName").change(function () {
              alert("Text Entered Is :"+$("#UserName").val());
          });
      });
</script>

$(文档).ready(函数(){
警报(“已加载”);
$(“#用户名”).change(函数(){
警报(“输入的文本为:+$(“#用户名”).val());
});
});

警报由于Javascript的单线程特性,会阻止代码的执行。因此,您可以使用它来获取代码的伪堆栈跟踪。

您确定没有缓存页面的上一版本吗?jquery的哪个版本?此代码看起来正确此代码不正确,document ready不应与jQuery Mobile一起使用,有时document ready可能会在创建页面之前触发,并且不会绑定此案例更改事件。看看我的另一个答案,以便更好地理解:@Gajotres我没有看到NewToAspMVC提到任何关于JQueryMobile的内容。那么used tag呢?在我使用F5重新加载页面时起作用;但是当我从某个链接到达页面时,它就不起作用了。
<script>
      $(document).ready(function () {
          alert("Loaded");
          $("#UserName").change(function () {
              alert("Text Entered Is :"+$("#UserName").val());
          });
      });
</script>