jQuery('select').on('change EVENT_I_AM_LOOKING_FOR', function() {
var select_box = jQuery(this);
var id = select_box.data('id');
var details = jQuery('#details_' + id);
if(select_box.val()) {
details.show();
} else {
details.hide();
}
});
-------------------------------------------
jQuery('select').triggerHandler('change');
// or name the anonymous function and invoke it immediately
是否有类似"加载"的事件(不起作用)或者在声明之后立即运行该函数以将代码保存在线下?或者是否有另一种立即调用anon函数的方法?
没有改变生活,但我总是想知道我什么时候写这样的代码。
答案 0 :(得分:2)
不,但你可以链接:
jQuery('select').on('change', function(e){ ... }).trigger('change');
答案 1 :(得分:0)
现在,您在创建处理程序后立即触发事件的方法是一种很好的模式。另一种方法是为处理程序声明一个函数并立即调用它。像这样:
var myFunction = function() {
var select_box = jQuery(this);
var id = select_box.data('id');
var details = jQuery('#details_' + id);
if (select_box.val()) {
details.show();
}
else {
details.hide();
}
}
jQuery('select').on('change EVENT_I_AM_LOOKING_FOR', myFunction);
$.proxy(myFunction, $('select'))();
注意我在这里使用了$.proxy
,因为您的函数依赖于导致事件的select
的范围。