jQuery针对多个元素的相同点击事件
jQuery针对多个元素的相同点击事件
有没有办法为页面上的不同元素执行相同的代码?
-
$('.class1').click(function() {
-
some_function();
-
});
-
-
$('.class2').click(function() {
-
some_function();
-
});
而是做一些像:
-
$('.class1').$('.class2').click(function() {
-
some_function();
-
});
谢谢
#1楼
$('.class1, .class2').on('click', some_function);
要么:
$('.class1').add('.class2').on('click', some_function);
这也适用于现有对象:
-
const $class1 = $('.class1');
-
const $class2 = $('.class2');
-
$class1.add($class2).on('click', some_function);
#2楼
只需将$('.myclass1, .myclass2, .myclass3')
用于多个选择器。 此外,您不需要lambda函数将现有函数绑定到click事件。
#3楼
我通常使用on
,而不是click
。 它允许我向特定函数添加更多事件侦听器。
-
$(document).on("click touchend", ".class1, .class2, .class3", function () {
-
//do stuff
-
});
希望能帮助到你!
#4楼
另一种选择,假设您的元素存储为变量(如果您在函数体中多次访问它们,通常是个好主意):
-
function disableMinHeight() {
-
var $html = $("html");
-
var $body = $("body");
-
var $slideout = $("#slideout");
-
-
$html.add($body).add($slideout).css("min-height", 0);
-
};
利用jQuery链接并允许您使用引用。
#5楼
我有一个包含许多输入字段的对象的链接,这需要由同一事件处理。 所以我只需使用find()来获取需要拥有事件的所有内部对象
-
var form = $('<form></form>');
-
// ... apending several input fields
-
-
form.find('input').on('change', onInputChange);
如果你的对象是链接的一级,可以使用children()而不是find()方法。
#6楼
我们也可以编写如下代码,我在这里使用了模糊事件。
-
$("#proprice, #proqty").blur(function(){
-
var price=$("#proprice").val();
-
var qty=$("#proqty").val();
-
if(price != '' || qty != '')
-
{
-
$("#totalprice").val(qty*price);
-
}
-
});
#7楼
除了上面的优秀示例和答案,您还可以使用他们的类对两个不同的元素进行“查找”。 例如:
-
<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”。
#8楼
添加逗号分隔的类列表,如下所示:
-
jQuery(document).ready(function($) {
-
-
$('.class, .id').click(function() {
-
-
// Your code
-
-
}
-
-
});
#9楼
如果您有或想要将元素保存为变量(jQuery对象),您还可以循环它们:
-
var $class1 = $('.class1');
-
var $class2 = $('.class2');
-
-
$([$class1,$class2]).each(function() {
-
$(this).on('click', function(e) {
-
some_function();
-
});
-
});
#10楼
$('.class1, .class2').click(some_function);
确保你放置一个像$('。class1,space here.class2')的空格,否则它将无效