Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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、jQuery,最好的事件监听器是什么?_Javascript_Jquery - Fatal编程技术网

Javascript、jQuery,最好的事件监听器是什么?

Javascript、jQuery,最好的事件监听器是什么?,javascript,jquery,Javascript,Jquery,我很好奇 例如,如果我想为单击添加事件侦听器 我通常使用jQuery $('.selector').click(function() {} ); 但也有其他几种方法可以做到这一点 <button class="selector" id="selector" onclick="click()"> $('.selector').on('click', function() {} ); document.getElementById('selector').addEventListe

我很好奇

例如,如果我想为单击添加事件侦听器

我通常使用jQuery

$('.selector').click(function() {} );
但也有其他几种方法可以做到这一点

<button class="selector" id="selector" onclick="click()">

$('.selector').on('click', function() {} );

document.getElementById('selector').addEventListener("click", function() {} );

$('.selector')。on('click',function(){});
document.getElementById('selector').addEventListener(“单击”,函数(){});
他们之间有什么显著的区别吗


最佳做法是什么?

视情况而定。我通常用这个:

$('body').on('click', '.selector', function() {} );

因为它将侦听器添加到该类的所有元素中,即使是稍后将出现在文档中的元素(即AJAX调用之后)。

第一个是。第二个使用jQuery。第三个不使用jQuery和IE上的<9。正如@GSerg提到的不在IE8和以下版本中工作一样,在
上使用jQuery
可以附加多个事件,如
on('click change input')
,如果不能直接在纯javascript中执行,请检查此jQuery为您提取了一些细节,因此,您不必担心旧浏览器中的实现差异,现在IE的旧版本没有被大量使用,这一点也不重要。但是jQuery也使得用一行代码将处理程序绑定到多个元素变得非常简单,等等。我不会仅仅为了事件处理而将jQuery添加到项目中,因为使用vanilla JS很容易,但是如果我需要其他方便的功能,比如简单的DOM导航、简单的动画、一行Ajax等等。,然后我会使用jQuery。这些都非常有用。谢谢虽然观察到的效果是它确实为将来的元素添加了一个侦听器,但实际上它只为
body
添加了一个侦听器,而整个要点与OP的问题无关。