jQuery相同的点击事件多个元素
有什么办法可以为页面上的不同元素执行相同的代码吗?
$('.class1').click(function() { some_function(); }); $('.class2').click(function() { some_function(); });
而是要做一些事情:
$('.class1').$('.class2').click(function() { some_function(); });
谢谢
$('.class1, .class2').on('click', some_function);
要么:
$('.class1').add('.class2').on('click', some_function);
我通常使用on
而不是click
。 它允许我添加更多的事件监听器到一个特定的function。
$(document).on("click touchend", ".class1, .class2, .class3", function () { //do stuff });
希望它有帮助!
$('.class1, .class2').click(some_function);
确保你把一个空间像$('。class1,space here.class2')否则它不会工作
只需使用$('.myclass1, .myclass2, .myclass3')
作为多个select器。 另外,你不需要lambda函数来绑定一个现有的函数到click事件。
另一种方法,假设你的元素被存储为variables(如果你在函数体中多次访问它们,这通常是一个好主意):
function disableMinHeight() { var $html = $("html"); var $body = $("body"); var $slideout = $("#slideout"); $html.add($body).add($slideout).css("min-height", 0); };
利用jQuery链接,并允许您使用引用。
我们也可以像下面的代码一样,我在这里使用了模糊事件。
$("#proprice, #proqty").blur(function(){ var price=$("#proprice").val(); var qty=$("#proqty").val(); if(price != '' || qty != '') { $("#totalprice").val(qty*price); } });
我有一个对象包含许多input字段的链接,这需要由相同的事件处理。 所以我只是使用find()来获取所有需要事件的内部对象
var form = $('<form></form>'); // ... apending several input fields form.find('input').on('change', onInputChange);
万一你的对象是一个级别的链接children(),而不是find()方法可以使用。
除了上面的例子和答案之外,你还可以使用它们的类来为两个不同的元素进行“查找”。 例如:
<div class="parent"> <div class="child1">Hello</div> <div class="child2">World</div> </div> <script> var x = jQuery('.parent').find('.child1, .child2').text(); console.log(x); </script>
这应该输出“HelloWorld”。
添加逗号分隔的类列表,如下所示:
jQuery(document).ready(function($) { $('.class, .id').click(function() { // Your code } });