2012-03-30 23 views
10

Estoy desarrollando una aplicación que recibe contente (URI) y la estoy probando con IE10 sharing.Ventaja compartida de Windows 8 con JQuery

El problema es que mis elementos (span, divs o botones) que tienen asociado el controlador de eventos onclick, cierran el panel para compartir en el segundo clic. El segundo clic en la ventana de cualquier elemento provoca el bloqueo.

He probado el código que ejecuta la página como la página predeterminada de la aplicación, y todo funciona bien. Este comportamiento no deseado solo se produce en el panel de recursos compartidos.

Después de un tiempo de depuración manual, encontré el fragmento de código que está causando el impacto: La lib de Jquery. Si Jquery está presente en la página, causa bloqueo en el panel de recursos compartidos.

No es posible depurar esto usando Visual Studio porque este bloqueo solo ocurre cuando no tengo el depurador conectado. Con el depurador adjunto, todo funciona bien.

¿Alguien puede ayudarnos con esto? Vea mi página simple debajo de

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

¡Gracias!

+3

¿Sería capaz de poner un ejemplo de trabajo en jsfiddle.net? Nos ayudará mucho a encontrar una solución. –

+0

¿Intentó vincular el evento click a través de jQuery (no me gusta 'onclick')? – mreq

Respuesta

1

probar este lugar:

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

con la opció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") 
    } 
}); 

u otra forma de hacerlo:

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

Por favor, me informen si se puede ver cualquier cambio. Respondí de esta manera (a ciegas) porque solo creo que tenga sentido aquí está teniendo problemas con js y me pregunto mientras tienes jquery lib ¿por qué no lo usas? bien esa es otra pregunta de curso. Si crees que mi respuesta no se ajusta a tu pregunta, intenta darnos la mayor cantidad de información posible para resolver este problema.