jQuery - совпадения элементов, заданные в глобальных переменных, не работают в Google Chrome - PullRequest
0 голосов
/ 26 апреля 2011

Я обнаружил подозрительный сбой в своем коде, родном только для Google Chrome. Я определил несколько переменных как некоторые элементы, на которые я обычно ссылаюсь, и у меня не было проблем с выполнением кода, кроме случаев, когда в Google Chrome (мне потребовалось некоторое время, чтобы понять, что мои переменные были причиной проблемы). Мне интересно, если кто-нибудь знает, почему это происходит ..

Следующий код прекрасно работает в Mozilla, но не в Chrome:

var homeAbout = $("#homeAbout");

$("#subLinkAbout").bind("click", function() { 
    if (homeAbout.is(":visible")) {
        return;
    } 
    $("#content .homeNode:visible").hide("slide", { direction: "right" }, contentSlideTime, function () {
        //this line does not function properly
        homeAbout.stop(true, false).show("slide", { direction: "left" }, contentSlideTime);
    });
});

Это, однако, отлично работает:

var homeAbout = $("#homeAbout");

$("#subLinkAbout").bind("click", function() { 
    if (homeAbout.is(":visible")) {
        return;
    } 
    $("#content .homeNode:visible").hide("slide", { direction: "right" }, contentSlideTime, function () {
        $("#homeAbout").stop(true, false).show("slide", { direction: "left" }, contentSlideTime);
    });
});

Это происходит только в той строке, где используется .show (). Контент будет скрыт, а потом ничего не произойдет. Кто-нибудь может объяснить это дальше? Любые предложения по моему коду также приветствуются, я все еще очень новичок, когда дело доходит до jQuery ...

Заранее большое спасибо, любой совет приветствуется.

1 Ответ

0 голосов
/ 26 апреля 2011

Если вы используете jQuery, почему вы используете bind?

$("#subLinkAbout").click(function() { 

Должно быть лучше.

...