我正在尝试仅对具有类
的当前项目禁用click事件$(document).on( 'click', '.item', function() {
$(".item").removeClass('is-expanded');
$(this).addClass('is-expanded');
$(".item").each(function(){
$(".item").click(true).css("cursor", "pointer");
$(".is-expanded").click(false).css("cursor", "default");
});
但是,我仍然可以点击课程.is-expanded
上的项目,但不应该点击所有其他没有该课程的项目
答案 0 :(得分:2)
如果我理解你的逻辑,你想要:
$(document).on( 'click', '.item:not(.is-expanded)', function() {
$(".item").removeClass('is-expanded');
$(this).addClass('is-expanded');
});
并将光标设置在CSS中,如你所愿:
.item {
cursor: pointer;
}
.item.is-expanded {
cursor: default;
}
答案 1 :(得分:1)
使用on()
方法时,您将检测链接到该方法的元素或其他命名事件,并查看其来源。一旦偶数已经冒出来,就无法阻止(因为它已经发生了)。
但是,您可以将事件监听器附加到元素本身,并评估当前类:
$('.item').click(function(){
if ($(this).hasClass('is-expanded')) {
return false;
}
else {
// do whatever
}
});
答案 2 :(得分:0)
如果我理解,你需要解开
$('.item').click(function() {
$(".item").removeClass('is-expanded');
$(this).addClass('is-expanded').unbind('click');
});
如果你需要ricovery点击,而不是:
$( document ).ready(function() {
$('.item').click(function() {
if ($(this).hasClass('is-expanded')) {
return false;
} else {
$(".item").removeClass('is-expanded');
$(this).addClass('is-expanded');
}
});
});