2012-03-30 33 views
10

Tôi đang phát triển một ứng dụng nhận được contente (URI) và tôi đang thử nghiệm ứng dụng đó với chia sẻ IE10.Mục tiêu chia sẻ Windows 8 bị lỗi với JQuery

Vấn đề là các phần tử (span, divs hoặc buttons) của tôi có trình xử lý sự kiện onclick được liên kết, đóng bảng chia sẻ trong lần nhấp thứ hai. Nhấp chuột thứ hai trong cửa sổ trên bất kỳ phần tử nào gây ra sự cố.

Tôi đã thử nghiệm mã chạy trang làm trang mặc định của ứng dụng và mọi thứ hoạt động tốt. Hành vi không mong muốn này chỉ xảy ra trên bảng điều khiển chia sẻ.

Sau một thời gian gỡ lỗi thủ công, tôi đã tìm thấy đoạn mã gây ra sự cố: Jquery lib. Nếu Jquery hiện diện trong trang, nó gây ra sự cố trong bảng điều khiển chia sẻ.

Không thể gỡ lỗi việc này bằng Visual Studio vì sự cố này chỉ xảy ra mà tôi không có trình gỡ rối đính kèm. Với trình gỡ rối gắn liền với nó, mọi thứ hoạt động tốt.

Ai đó có thể trợ giúp về vấn đề này? Xem trang đơn giản của tôi bên dưới

<!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> 

Cảm ơn!

+3

Bạn có thể đặt một ví dụ làm việc trên jsfiddle.net không? Nó sẽ đi một chặng đường dài để giúp chúng tôi tìm ra giải pháp. –

+0

Bạn đã thử ràng buộc sự kiện nhấp qua jQuery (Tôi không thích 'onclick')? – mreq

Trả lời

1

thử này để thay thế:

<div onclick="javascript:test(); class="cls1">Button</div> 

với tùy chọn:

/* 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") 
    } 
}); 

hoặc một cách khác để làm điều đó:

$(document).ready(function() { 
    $("div").each(function() { 
     $(this).click(function() { 
      if ($(this).hasClass("cls1")) { 
       $(this).removeClass("cls1") 
       $(this).addClass("cls2") 
      } 
     }); 
    }); 
}); 

Hãy thông báo cho tôi nếu bạn có thể thấy bất kỳ thay đổi. Tôi trả lời theo cách này (mù quáng) gây ra chỉ nghĩ rằng có ý nghĩa ở đây là gặp rắc rối với js và tôi tự hỏi trong khi u có jquery lib tại sao bạn không sử dụng nó? cũng thats một câu hỏi offcourse. Nếu bạn nghĩ rằng câu trả lời của tôi không phù hợp với câu hỏi của bạn hơn hãy cố gắng cung cấp cho chúng tôi càng nhiều thông tin càng tốt để giải quyết vấn đề này.

Các vấn đề liên quan