是否有与关键字this
相反的关键字?
$('.lt-buttonContainer button').click(function () {
var $this = $(this);
$this.addClass("button1Clicked");
$!this.removeClass("button1Clicked");
})
答案 0 :(得分:2)
不,在您的上下文中没有与this
相反的关键字。
!this
只取逻辑而不是this
的值,这不会解决代码中的问题。
您的问题可能真的需要澄清,但在您的具体示例中,如果您想要原始集合中的所有元素,但不是this
的当前值,那么'你的意思相反,那么你必须自己计算这个集合。
这可以这样完成:
$('.lt-buttonContainer button').click(function () {
$('.lt-buttonContainer button').removeClass("button1Clicked");
$(this).addClass("button1Clicked");
});
或者,如果您真的想要原始集合中不是this
的元素集合,那么您可以这样做:
$('.lt-buttonContainer button').click(function () {
$('.lt-buttonContainer button').not(this).removeClass("button1Clicked");
$(this).addClass("button1Clicked");
});
虽然在这个特定情况下不需要第二个代码片段中的额外.not()
操作,因为它在集合中的所有对象中对.removeClass()
没有任何损害,然后再将其添加回一个。
答案 1 :(得分:2)
没有内置方法来获取所有其他元素。使用not()
将其从集合中删除。
var buttons = $('.lt-buttonContainer button');
buttons.click(function () {
var $this = $(this);
$this.addClass("button1Clicked");
buttons.not($this).removeClass("button1Clicked");
});
答案 2 :(得分:1)
以下代码段是否有帮助?
current_user
答案 3 :(得分:0)
您可以使用toggleClass() jq方法并使用以下逻辑委派事件:
$('.lt-buttonContainer').on('click', 'button:not(.button1Clicked)', function (e) {
$(e.delegateTarget).find('button.button1Clicked').add(this).toggleClass("button1Clicked");
});
如果元素button
是兄弟姐妹:
$('.lt-buttonContainer').on('click', 'button:not(.button1Clicked)', function () {
$(this).siblings('button.button1Clicked').add(this).toggleClass("button1Clicked");
});