2

通常要将多个事件绑定到一个元素,可以使用.on()

$("select#id").on("click change").function(){
    // do actions
});

但是,从jQuery 1.8 开始不推荐使用readywith :.on()

// Deprecated
$(document).on("ready", handler)

.on("ready")的行为也不同于.ready(). .on("ready")具体来说,如果在元素准备好后绑定到元素,则处理程序将不会执行,而.ready()即使在元素准备好后调用也会执行。

您可以使用命名函数来完成它:

var myFunction = function(){
    // do actions
};

$(document).ready(myFunction);
$("select#id").change(myFunction);

但这并不理想。使用单个匿名函数会更干净。

4

2 回答 2

0

抱歉,您根本无法在更新的 jquery 版本中执行此操作。

您的代码原样没有任何意义,没有理由在您使用时使用除document内部之外的任何东西,因为它将简单地忽略当前选择的任何内容并执行它的操作,就像被选中一样。$().ready.readydocument

$(document).ready(function(){
    $("#theid").change(changeHandler).change();
});

如果唯一的目标是只使用 1 个匿名函数,则事件委托会这样做,但这可能是矫枉过正。

$(document).on('change','#theid',thehandler);

其中处理程序是匿名函数或命名函数,您可以选择。

于 2013-10-16T17:44:35.503 回答
0

一种方法是:

$(document).ready(function(){
    $("select#id").change(function(){
        // do actions
    }).change();
});

这将为change事件定义处理程序,然后立即调用该change事件。因为它在ready()处理程序内部,所以它将为readychange事件执行。

于 2013-10-16T17:39:54.120 回答