我正在使用VS2010 + MVC3(Razor)+ IE8 + JQueryUI堆栈,我试图使用jqueryui .buttons()函数创建一个按钮列表。但是,由于某些未知原因,当按下按钮时,它将始终使Dev-Webserver + IE8崩溃。下面的代码是必要的,足以证明该错误。只需将其剪切并粘贴到Home / Index.chtml文件中即可运行。
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/themes/base/jquery-ui.css" type="text/css" media="all" />
<link rel="stylesheet" href="http://static.jquery.com/ui/css/demo-docs-theme/ui.theme.css" type="text/css" media="all" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/jquery-ui.min.js" type="text/javascript"></script>
<ul>
<li>
<div>
<label for="aa">text</label>
<input type="checkbox" id="aa" class="theclass"/>
</div>
</li>
</ul>
<script type="text/javascript">
$(function () {
$(".theclass").button();
});
</script>
这适用于Chrome,如果将其放入纯HTML文件并在VS2010之外运行,也不会出现错误,因此这可能是MVC / ASP特有的。删除周围的div将阻止其崩溃。值得注意的是,当按钮是div组中的最后一个按钮时,这只会崩溃。作为一个黑客,我在输入元素后面添加了一个空div,这使它不会崩溃。这是一个非常特殊的错误,所以我在这里发布这个以防万一有类似的麻烦。
干杯 罗布
答案 0 :(得分:0)
IE8有一大堆bug。最好的建议是看看这个IE8错误列表。每当我发现IE8错误时,我都会使用此列表。
我在该页面上找到的最接近的东西是以下javascript错误。
在一个突破for循环的语句中使用querySelectorAll会触发一个完整的程序崩溃。
jQuery方法可能导致该问题,或者按钮方法导致了这种情况。你为什么试图把一个复选框变成一个按钮?我不认为按钮方法应该像那样工作。
答案 1 :(得分:0)
这也发生在我身上,但不是VS2010而不是MVC,这只是jQueryUI按钮似乎发生的事情......
我的解决方案很简单,将有问题的元素包装在SPAN标记中。在上面的例子中,这应该解决问题......
<span class="theclass"><input type="checkbox" id="aa"></span>