我正在开发一个接收contente(URI)的应用程序,我正在使用IE10共享进行测试.
问题是我的元素(span,divs或按钮)与onclick事件处理程序相关联,在第二次点击中关闭共享面板.
任何元素的窗口中的第二次点击会导致崩溃.
我测试了运行该页面的代码作为应用程序的默认页面,一切正常.这种不希望的行为只发生在共享面板上.
经过一段时间的手动调试,我发现导致crase的代码片段:Jquery lib.
如果Jquery存在于页面中,则会在共享面板中导致崩溃.
不可能使用Visual Studio进行调试,因为只有我没有附加调试器,才会发生这种崩溃.调试器附加到它,一切正常.
有人可以帮忙吗?请看我下面的简单页面
<!DOCTYPE html> <html> <head> <title></title> <!-- WinJS references --> <script src="//Microsoft.WinJS.0.6/js/base.js"></script> <script src="//Microsoft.WinJS.0.6/js/ui.js"></script> <script src="/js/default.js" type="text/javascript"></script> <script src="/js/jquery-1.7.2.js" type="text/javascript"></script> <script> var curr; function test() { if (curr) { curr.className = "cls1"; } curr = event.srcElement; curr.className = "cls2"; } </script> <style> .cls1 { background-color: #f00; cursor: pointer; } .cls2 { background-color: #0094ff; cursor: pointer; } </style> </head> <body> <h1>Share</h1> <br /> <div onclick="test();" class="cls1">Button</div> <div onclick="test();" class="cls1">Button</div> </body> </html>
谢谢!
改为:
<div onclick="javascript:test(); class="cls1">Button</div>
可选:
/* Your own code is good enough but i wanted to create another point of view */ var curr; function test() { curr = event.srcElement; if ($(curr).hasClass("cls1")) { $(curr).removeClass("cls1") $(curr).addClass("cls2") } });
或另一种做法:
$(document).ready(function () { $("div").each(function () { $(this).click(function () { if ($(this).hasClass("cls1")) { $(this).removeClass("cls1") $(this).addClass("cls2") } }); }); });
如果您看到任何更改,请通知我.我以这种方式(盲目地)回答,因为只有认为有意义,这里有麻烦与js,我想知道当你有jquery lib为什么不使用它?这又是另一个问题.如果您认为我的答案不适合您的问题,请尽量给我们尽可能多的信息,以解决这个问题.