我正在运行两个jquery,我希望将它们组合在一起。 这是我正在尝试做的一个例子。
$(function(){
$('input').each(function(){
if ($(this).is(':checked')) {
$(this).after('this is checked');
}
});
$('input').click(function(){
if ($(this).is(':checked')) {
$(this).after('this is checked');
}
});
});
现在,两个函数都做同样的事情,一个执行检查是否有任何输入从后端检查,另一个只响应用户点击。
我在想是否可以将它们合并到这样的声明中,
$('input').bind('each click');
但是我注意到即使这样也不适用于每个人。 有任何想法吗?
谢谢!
答案 0 :(得分:1)
您无法绑定each
方法,因为它不是事件。
将函数分配给变量,以便您可以重复使用它:
$(function(){
var markChecked = function() {
if ($(this).is(':checked')) {
$(this).after('this is checked');
}
};
$('input').each(markChecked).click(markChecked);
});
有时使用的另一种方法是触发每个元素的click事件以强制进行初始检查:
$(function(){
$('input').click(function() {
if ($(this).is(':checked')) {
$(this).after('this is checked');
}
}).click();
});
这当然假设触发click事件没有任何副作用。如果您已经将另一个click事件处理程序绑定到任何元素,这将导致也调用该事件处理程序。
答案 1 :(得分:1)
只需命名函数..
function handler() {
if ($(this).is(':checked')) {
$(this).after('this is checked');
}
}
然后在两种情况下使用它:
$(function(){
$('input').each(handler);
$('input').click(handler);
});