#jquery #google-chrome #show
#jquery #google-chrome #показать
Вопрос:
Я обнаружил подозрительный сбой в своем коде, встроенном только в 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:
Если вы используете jQuery, почему вы используете bind?
$("#subLinkAbout").click(function() {
Должно быть лучше.
Комментарии:
1. Потому что я не знал лучше, пока вы не опубликовали это… Спасибо! 🙂
2. Я не вижу проблемы с остальным — если вы добавите в jsfiddle, я посмотрю на это.