2
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 函数?

这并没有改变生活,但我总是想知道何时编写这样的代码。

4

2 回答 2

2

不,但您可以链接:

jQuery('select').on('change', function(e){ ... }).trigger('change');
于 2013-11-08T11:03:29.133 回答
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导致事件的范围。

于 2013-11-08T11:02:52.273 回答