所以在JavaScript中,我可以执行以下操作:
var someObj = document.getElementById("foo");
var fooClick = foo.onclick;
var someOtherObj = document.getElementById("bar");
someOtherObj.onclick = fooClick;
我想知道,jQuery等同于上面的代码是什么?
谢谢!
答案 0 :(得分:6)
是否真的需要从另一个对象获取事件处理程序?这对我来说似乎不是一个好主意。更好的方法是定义处理程序,并将其分配给两个对象。
var clickHandler = function(e) { alert('click!'); };
$('#foo,#bar').click(clickHandler);
答案 1 :(得分:5)
var someObj = $("#foo").get(0);
var fooClick = someObj.onclick;
$("#bar").click(fooClick);
或者如果你想要一行:
$("#bar").click($("#foo").get(0).onclick);
答案 2 :(得分:3)
只需添加Daniel Schaffer的答案(+ 1),您还可以内联点击'处理程序'定义,例如:
$("#foo, #bar").click( function() {
alert( this.id + ' was clicked.' );
} );
行为应该是相同的,但根据你的编码风格品味,你可能更喜欢这个(我愿意)。