我有一個jQuery的hasClass問題。jQuery hasClass,如果
$(document).ready(function() {
var body = $('body'),
leftPane = $('.pane-left');
leftPane.on('click', function() {
body.removeClass('left-closed');
body.addClass('left-open');
$('.pane-left h2').fadeIn(600);
setTimeout(function() {
rightPane.fadeOut(0);
$('.pane-left-wrap').fadeIn(100);
$('.pane-left-wrap .secondary-nav li:first-child').fadeIn(100);
$('.pane-left-wrap .secondary-nav li:nth-child(2)').fadeIn(600);
$('.pane-left-wrap .secondary-nav li:nth-child(3)').fadeIn(1200);
$('.pane-left-wrap .secondary-nav li:nth-child(4)').fadeIn(1800);
$('.pane-left-wrap .secondary-nav li:nth-child(5)').fadeIn(2400);
}, 600);
});
if(body.hasClass('left-open')) {
leftPane.on('click', function() {
body.removeClass('left-open');
body.addClass('left-closed');
$('.pane-left h2').fadeOut(600);
});
}
});
我單擊窗格中左和左開添加到我的身體標記。然後我再次點擊,但我的if()內的代碼無法訪問。這是爲什麼?
您的'if'條件只在頁面加載時執行,而不是在點擊添加'left-open'類後執行。 – Matt
而不是有條件地綁定,檢查綁定內部的狀態,以知道您是否應該執行該邏輯。或者,如果可能,將其更改爲委託綁定,將包含條件檢查作爲子選擇器的一部分。 – Taplar
hasClass的'if'應該在你的點擊處理程序中,這意味着你將有一個點擊處理程序並檢查你的類在裏面 – Huangism