Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 禁用旧按钮上的功能_Javascript_Jquery_Html - Fatal编程技术网

Javascript 禁用旧按钮上的功能

Javascript 禁用旧按钮上的功能,javascript,jquery,html,Javascript,Jquery,Html,在我的项目中,我希望以编程方式添加某些元素按钮,因为每次添加新的按钮,对旧的按钮的调用都会加倍 var btnElem='Button'; 函数ActiveFunc(){ $('.doSomething')。在('click',function(){ 警报(“点击”); }); } $('#Add_Btn')。在('click',function(){ $('div').append(btnElem); ActiveFunc(); }) AddBtn 您正在使用.doSomething类向每

在我的项目中,我希望以编程方式添加某些元素
按钮
,因为每次添加新的
按钮
,对旧的
按钮
的调用都会加倍

var btnElem='Button
'; 函数ActiveFunc(){ $('.doSomething')。在('click',function(){ 警报(“点击”); }); } $('#Add_Btn')。在('click',function(){ $('div').append(btnElem); ActiveFunc(); })

AddBtn

您正在使用
.doSomething
类向每个元素添加函数。请尝试以下方法:

$('Add#Btn')。在('click',function(){
btnElem.on('click',function(){
//废话
}); 
var newButton=$('div').append(btnElem);

})
您正在使用
.doSomething
类向每个元素添加函数。请尝试以下方法:

$('Add#Btn')。在('click',function(){
btnElem.on('click',function(){
//废话
}); 
var newButton=$('div').append(btnElem);

})
这是因为每次添加按钮时都会添加事件侦听器

我建议1个事件侦听器这样做:

var btnElem='按钮
'; $('body')。在('click','doSomething',函数()上{ 警报(“点击”); }); $('Add#Btn')。在('click',function()上{ $('div').append(btnElem); })

AddBtn

这是因为每次添加按钮时都会添加事件侦听器

我建议1个事件侦听器这样做:

var btnElem='按钮
'; $('body')。在('click','doSomething',函数()上{ 警报(“点击”); }); $('Add#Btn')。在('click',function()上{ $('div').append(btnElem); })

AddBtn

为什么不在类中添加一个按钮元素呢?无需每次都附加事件。下面是使用ES6语法的解决方案

让btnElem='单击我';
$(文档)。在(“单击”、“.doSomething”、()=>{
警惕(“做某事”);
});
$(文档)。在(“单击”、“#添加BTN”、()=>{
$('div').append(btnElem);
});

AddBtn

为什么不在类中添加一个按钮元素呢?无需每次都附加事件。下面是使用ES6语法的解决方案

让btnElem='单击我';
$(文档)。在(“单击”、“.doSomething”、()=>{
警惕(“做某事”);
});
$(文档)。在(“单击”、“#添加BTN”、()=>{
$('div').append(btnElem);
});

AddBtn

Alice Yu是正确的,但我会采取不同的方法,在按钮上添加
onclick
,并使用该按钮调用函数,如下所示:

<button type="button" onclick="addButtonFunction();" id="Add_Btn">AddBtn</button>
AddBtn

对动态添加的按钮执行相同的操作Alice Yu是正确的,但我会采取不同的方法,在按钮上添加
onclick
,并使用该按钮调用函数,如下所示:

<button type="button" onclick="addButtonFunction();" id="Add_Btn">AddBtn</button>
AddBtn

并在动态添加的按钮上执行相同操作,事件侦听器将一次性附加到特定元素。这就是为什么你有多个事件

var btnElem='Button
'; 函数ActiveFunc(){ $('.doSomething')。在('click',function(){//上,此函数将事件侦听器附加到具有doSomething类的所有元素。 //事件监听器是基于元素附加的,尽管jquery选择器以类名为目标 //所以在第三次激活时,第一个按钮现在有3个侦听器,第二个按钮现在有2个侦听器,第三个按钮 警报(“点击”); }); } $('#Add_Btn')。在('click',function(){ $('div').append(btnElem); ActiveFunc(); })

AddBtn

事件侦听器一次性附加到特定元素。这就是为什么你有多个事件

var btnElem='Button
'; 函数ActiveFunc(){ $('.doSomething')。在('click',function(){//上,此函数将事件侦听器附加到具有doSomething类的所有元素。 //事件监听器是基于元素附加的,尽管jquery选择器以类名为目标 //所以在第三次激活时,第一个按钮现在有3个侦听器,第二个按钮现在有2个侦听器,第三个按钮 警报(“点击”); }); } $('#Add_Btn')。在('click',function(){ $('div').append(btnElem); ActiveFunc(); })

AddBtn

$('div').append(btnElem)
将把
$('#div')
返回到变量中,因此该逻辑将在该元素上复制bind。@Taplar你完全正确-我写得太快了!谢谢提醒:)希望我已经修好了。
btnElem
是一个字符串。无法在字符串上绑定:)
$('#div').append(btnElem)
将把
$('#div')
返回到变量中,因此该逻辑将在该元素上复制bind。@Taplar你完全正确-我写得太快了!谢谢提醒:)希望我已经修好了。
btnElem
是一个字符串。无法绑定字符串:)的可能重复项的可能重复项