2012-03-30 64 views
10

我正在开发一个接收共享(URI)的应用程序,我正在使用IE10共享进行测试。Windows 8共享目标与JQuery崩溃

问题是,我的元素(span,div或按钮)有onclick事件处理程序关联,关闭第二次点击共享面板。 第二次单击窗口中的任何元素都会导致崩溃。

我测试了运行页面的代码作为应用程序的默认页面,并且一切正常。这种不受欢迎的行为只发生在共享面板上。

经过一段时间的手动调试之后,我发现了一段代码导致了这种擦除:Jquery库。 如果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> 

谢谢!

+3

你能在jsfiddle.net上设置一个工作示例吗?这将帮助我们制定出解决方案。 – 2012-04-16 11:37:18

+0

您是否尝试通过jQuery绑定点击事件(我不喜欢'onclick')? – mreq 2012-05-23 19:45:09

回答

1

试试这个:

<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为什么不使用它?这是另一个问题的场合。如果您认为我的回答不符合您的问题,请尝试向我们提供尽可能多的信息以解决此问题。