通常,要将多个事件绑定到一个元素,可以使用.on()
:
$("select#id").on("click change").function(){
// do actions
});
但是,自jQuery 1.8起,ready
与.on()
的使用已被弃用:
// Deprecated
$(document).on("ready", handler)
.on("ready")
的行为也与.ready()
不同。具体来说,如果.on("ready")
在元素准备好后绑定到元素,处理程序将不会执行,而.ready()
即使在元素准备好后调用也会执行。
您可以使用命名函数完成它:
var myFunction = function(){
// do actions
};
$(document).ready(myFunction);
$("select#id").change(myFunction);
但这不太理想。使用单个匿名函数会更清晰。
答案 0 :(得分:0)
一种方法是:
$(document).ready(function(){
$("select#id").change(function(){
// do actions
}).change();
});
这将定义change
事件的处理程序,然后立即调用change
事件。因为它位于ready()
处理程序内部,所以它将针对ready
和change
事件执行。
答案 1 :(得分:0)
抱歉,您无法在更新版本的jquery中执行此操作。
您的代码实际上没有任何意义,当您使用document
时,没有理由在$()
内使用.ready
以外的任何内容,因为{{ 1}}将简单地忽略当前选择的任何内容并执行它的操作,就好像选择了.ready
一样。
document
如果唯一的目标是仅使用1个匿名函数,事件委托将执行此操作,但它可能有点过分。
$(document).ready(function(){
$("#theid").change(changeHandler).change();
});
其中,处理程序是匿名函数或命名函数,您可以选择。