我正在做的事情如下所示:
$("#btn1").click(function(){
$('<div></div>').appendTo('body');
});
当我点击它时,它会一次又一次地附加除法,但我想要的是当我点击其他按钮然后应该没有效果“btn1”意味着我想在我点击第二个按钮后清除第一个按钮的效果之一。
我怎么能这样做?
答案 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 )
”的快捷方式。因此,您需要.off
(http://api.jquery.com/off/)来清除事件处理程序。