Windows 8 разделяет задачу с JQuery

Я разрабатываю приложение, которое получает контент (URI), и я тестирую его при совместном использовании IE10.

Проблема в том, что мои элементы (span, divs или buttons), имеющие связанный с обработчиком событий onclick, закрывают панель совместного доступа во втором клике.  Второй щелчок в окне на любом элементе вызывает сбой.

Я тестировал код, запускающий страницу как страницу по умолчанию приложения, и все работает нормально. Это нежелательное поведение происходит только на панели общего доступа.

После некоторого времени ручной отладки я обнаружил фрагмент кода, вызывающий краску: 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>

Спасибо!

Ответ 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, почему вы его не используете? ну это другой вопрос. Если вы считаете, что мой ответ не соответствует вашему вопросу, чем попробуйте дать нам как можно больше информации, чтобы решить эту проблему.