我想在第一次点击元素(使用jQuery)后隐藏它,这样用户就无法看到并点击该元素。
我该怎么做?
感谢。
答案 0 :(得分:9)
非常简单:
$("selector").click(function() { $(this).hide(); });
上面的 "selector"
可以是任何有效的jQuery selector(例如".click-to-hide"
,以使所有带有类click-to-hide
的元素都具有此行为)。隐藏元素是使用jQuery hide
方法完成的(如果您想稍后再次显示元素,还有show
。)
如果您第一次隐藏这些元素后不打算对这些元素进行任何操作,您可能还需要考虑remove
而不是hide
。
更新:要在第二次点击时执行某些操作,您需要记住何时对元素进行了点击。如果它不会变得更复杂,你可以使用一个类来实现这个目的:
$("selector").click(function() {
var $this = $(this);
if ($this.hasClass("clicked-once")) {
// already been clicked once, hide it
$this.hide();
}
else {
// first time this is clicked, mark it
$this.addClass("clicked-once");
}
});
如果您想计算点击次数,可以使用data
函数存储元素获得的点击次数:
$("selector").click(function() {
var $this = $(this);
// Current click count is previous click count +1
var clickCount = ($this.data("click-count") || 0) + 1;
// Save current click count
$this.data("click-count", clickCount);
if (clickCount == 1) {
$this.hide();
}
});
答案 1 :(得分:1)
我无法发表评论,但我认为我使用的代码比原始答案效果更好。
$("#slider").click(function() {
if ($('#slider').hasClass("clicked-once")) {
$('#menu').slideUp(1000);
$('#slider').removeClass("clicked-once");
}
else {
$('#slider').addClass("clicked-once");
$('#menu').slideDown(1000);
}
});

它更加简单和压缩。