Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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_Events_Javascript Events - Fatal编程技术网

Javascript 通过冒泡处理许多元素的单击事件

Javascript 通过冒泡处理许多元素的单击事件,javascript,jquery,html,events,javascript-events,Javascript,Jquery,Html,Events,Javascript Events,我有一个包含在父div中的控件列表,名为overlay controls 有许多列表控件,每个都有自己的覆盖控件 我使用for循环将事件侦听器添加到包含类delete的每个按钮 用户必须先确认,然后才能删除该项目。我试图将其附加到覆盖控件中的每个删除按钮 我使用for循环实现了它,但我知道使用冒泡和捕获有更好的方法。通过冒泡到父div,我无法仅将覆盖控件内的delete类作为目标 点击每个删除按钮,查看现场演示: 下面是我使用for循环的代码: (function() { fu

我有一个包含在父div中的控件列表,名为
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;}