如何在第二次单击时隐藏元素

时间:2011-09-10 11:58:24

标签: jquery click onclick

我想在第一次点击元素(使用jQuery)后隐藏它,这样用户就无法看到并点击该元素。

我该怎么做?

感谢。

2 个答案:

答案 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);
    }
});




它更加简单和压缩。