[英]jquery if has class issue
我正在使用bootstrap選項卡,我想用javascript做一些函數如果LI
被點擊但有條件,如果它是活動什么都不做,否則這樣做...
我已經提出了這個代碼來檢查它has a class="active" since bootstrap tabs adds class="active" to LI for the active tab
但它不能正常工作,它總是返回true,我正在做什么錯了嗎?
碼
var i = $( "li" ).hasClass( "active" );
$( "li" ).click(function() {
if (i == true ) {
console.log("the tab is already active");
}
else {
console.log("selected");
}
});
使用$(this)
獲取當前對象
$( "li" ).click(function() {
if ($(this).hasClass("active")) {
console.log("the tab is already active");
}
else {
console.log("selected");
}
});
檢查hasClass是否已點擊li:
$( "li" ).click(function() {
if ($(this).hasClass('active') ) {
console.log("the tab is already active");
}
else {
console.log("selected");
}
});
因為$(“li”)返回所有li標簽。 並且第一個li選項卡的初始狀態是活動的,因此i變量始終為true。
將代碼更改為@Bhojendra Sah所寫的內容。
您也可以嘗試使用動態元素:
$(document).on('click', "li.active", function (e) {
console.log("the tab is already active");
}).on('click', "li:not(.active)", function (e) {
console.log("selected");
});
$( "li" ).click(function() {
if ($(this).hasClass("active") ) {
console.log("the tab is already active");
}
else {
console.log("selected");
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.