如何使用jquery清除单击按钮的效果

时间:2013-10-07 07:17:08

标签: javascript jquery html

我正在做的事情如下所示:

$("#btn1").click(function(){
    $('<div></div>').appendTo('body');
});

当我点击它时,它会一次又一次地附加除法,但我想要的是当我点击其他按钮然后应该没有效果“btn1”意味着我想在我点击第二个按钮后清除第一个按钮的效果之一。

我怎么能这样做?

5 个答案:

答案 0 :(得分:2)

为什么不在btn1添加的div中添加一个类:

$("#btn1").click(function() {
    $("<div class='new-div'></div>").appendTo('body');
});

然后你的第二个按钮就可以删除它 -

$("#btn2").click(function() {
    $(".new-div").remove();
});

答案 1 :(得分:2)

当您点击第一个按钮时,它会将div标签附加到正文

$("#btn1").click(function(){
    $('div').appendTo('body');
});

然后当您单击第二个按钮时,它会从正文中删除div标记并清除前一个

$("#btn2").click(function(){
    $('body').children("div").remove();
});

答案 2 :(得分:1)

最简单的事情就是旗帜:

var btn_is_active = true; // set flag's initial state

$( "#btn1" ).click( function(){
    if ( btn_is_active ){ // only perform action if boolean is true
      $( "<div></div>" ).appendTo( "body" );
    }
});


$( "#btn2" ).click( function(){
    // toggle the boolean value
    btn_is_active = !btn_is_active;
});

在上面的例子中,#btn2控制标志;每次单击#btn2时,btn_is_active布尔值都会从true切换为false,从而启用/禁用#btn1的功能。


为了清除#btn1已经完成的任何操作,您必须能够跟踪添加的所有'<div></div>'元素。为此,您可能希望为它们提供一个类属性,然后#btn2可以删除具有该类属性的所有元素。

答案 3 :(得分:1)

我想你想在第一次点击时禁用#btn1的事件

$('#btn1").unbind('click');

这将使用该按钮清除已注册的点击事件

答案 4 :(得分:1)

http://api.jquery.com/click/.click:“此方法是.on( "click", handler )”的快捷方式。因此,您需要.offhttp://api.jquery.com/off/)来清除事件处理程序。