Javascript 通过冒泡处理许多元素的单击事件
我有一个包含在父div中的控件列表,名为Javascript 通过冒泡处理许多元素的单击事件,javascript,jquery,html,events,javascript-events,Javascript,Jquery,Html,Events,Javascript Events,我有一个包含在父div中的控件列表,名为overlay controls 有许多列表控件,每个都有自己的覆盖控件 我使用for循环将事件侦听器添加到包含类delete的每个按钮 用户必须先确认,然后才能删除该项目。我试图将其附加到覆盖控件中的每个删除按钮 我使用for循环实现了它,但我知道使用冒泡和捕获有更好的方法。通过冒泡到父div,我无法仅将覆盖控件内的delete类作为目标 点击每个删除按钮,查看现场演示: 下面是我使用for循环的代码: (function() { fu
overlay controls
有许多列表控件,每个都有自己的覆盖控件
我使用for循环将事件侦听器添加到包含类delete
的每个按钮
用户必须先确认,然后才能删除该项目。我试图将其附加到覆盖控件中的每个删除按钮
我使用for循环实现了它,但我知道使用冒泡和捕获有更好的方法。通过冒泡到父div,我无法仅将覆盖控件内的delete类作为目标
点击每个删除按钮,查看现场演示:
下面是我使用for循环的代码:
(function() {
function getConfirmation(e){
var retVal = confirm("Are you sure you want to delete this request?");
if( retVal == true ){
return true;
}else{
e.preventDefault();
return false;
}
}
var del = document.querySelectorAll('.delete');
for(var i = 0, len = del.length; i < len; i++){
del[i].addEventListener('click', function(e) {
getConfirmation(e);
}, false);
}
}());
(函数(){
功能确认(e){
var retVal=confirm(“您确定要删除此请求吗?”);
如果(retVal==true){
返回true;
}否则{
e、 预防默认值();
返回false;
}
}
var del=document.querySelectorAll('.delete');
对于(变量i=0,len=del.length;i
您不需要For/事件。每个循环
Jquery在内部处理它
$('.delete')。在('click',函数(e){
确认(e);
});代码>
如果您使用的是jQuery和getConfirmation方法,您也可以通过使用e.target来获取特定的(单击的)元素,该元素返回单击发生的目标。您不需要For/.each循环
Jquery在内部处理它
$('.delete')。在('click',函数(e){
确认(e);
});代码>
如果您使用的是jQuery和getConfirmation方法,您也可以通过使用e.target来获取特定的(单击的)元素,该元素返回单击发生的目标。您不需要For/.each循环
Jquery在内部处理它
$('.delete')。在('click',函数(e){
确认(e);
});代码>
如果您使用的是jQuery和getConfirmation方法,您也可以通过使用e.target来获取特定的(单击的)元素,该元素返回单击发生的目标。您不需要For/.each循环
Jquery在内部处理它
$('.delete')。在('click',函数(e){
确认(e);
});代码>
如果您使用的是jQuery和getConfirmation方法,您还可以通过使用e.target获取特定(单击的)元素,该元素返回单击发生的目标。仅Javascript解决方案
按照你的要求
var deletebuttons=document.getElementsByClassName('delete');
for(删除按钮中的var按钮){
button.onclick=getConfirmation;
}
仅Javascript解决方案
按照你的要求
var deletebuttons=document.getElementsByClassName('delete');
for(删除按钮中的var按钮){
button.onclick=getConfirmation;
}
仅Javascript解决方案
按照你的要求
var deletebuttons=document.getElementsByClassName('delete');
for(删除按钮中的var按钮){
button.onclick=getConfirmation;
}
仅Javascript解决方案
按照你的要求
var deletebuttons=document.getElementsByClassName('delete');
for(删除按钮中的var按钮){
button.onclick=getConfirmation;
}
您将问题标记为jQuery,但似乎完全避免使用它。是否有这个原因?想避免jQuery,(为了学习的目的),但会考虑一个jQuery解决方案。你把问题标记为jQuery,但似乎完全避免使用它。是否有这个原因?想避免jQuery,(为了学习的目的),但会考虑一个jQuery解决方案。你把问题标记为jQuery,但似乎完全避免使用它。是否有这个原因?想避免jQuery,(为了学习的目的),但会考虑一个jQuery解决方案。你把问题标记为jQuery,但似乎完全避免使用它。是否有原因?想避免jQuery,(考虑到学习目的),但会考虑jQuery解决方案。这项工作希望看到一个JavaScript唯一的解决方案,不需要改变我的方法GestActudio(e),因为我们已经瞄准了删除按钮。('delete');for(deletebuttons中的var按钮){button.onclick=getConfirmation;}
这家公司希望看到一个纯javascript的解决方案,不需要更改我的方法getConfirmation(e),因为我们已经针对delete按钮了。因此,您可以使用var deletebuttons=document.getElementsByClassName('delete');for(deletebuttons中的var按钮){button.onclick=getConfirmation;}
这家公司希望看到一个纯javascript的解决方案,不需要更改我的方法getConfirmation(e),因为我们已经将目标锁定在delete按钮上(deletebuttons中的var按钮){button.onclick=getConfirmation;}
这家公司希望看到一个纯javascript的解决方案,不需要更改我的方法getConfirmation(e),因为我们已经将目标锁定在delete按钮上(deletebuttons中的var按钮){button.onclick=getConfirmation;}