2012-03-30 65 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爲什麼不使用它?這是另一個問題的場合。如果您認爲我的回答不符合您的問題,請嘗試向我們提供儘可能多的信息以解決此問題。