在jQuery中,我经常编写成对的语句来更改按钮及其事件,如:
$("#button-container").html("<img id='button' src='button.png'>");
$("#button").click(buttonFunction);
我是不是在一行中错过了一些显而易见/简单的方法,比如:
$("#button-container").html("<img id='button' src='button.png'>").click(buttonFunction);
根据jdavies的答案,我喜欢做以下事情来尽可能提高可读性(和可编辑性(:
$('<img/>').attr({
id: 'button',
src: 'button.png'
})
.click(function() {
alert('clicked');
})
.appendTo('#button-container');
您可以执行以下操作,但我不确定您在可读性方面是否有多大收获:
$("#button-container").append($("<img id='button' src='button.png'>").click(buttonFunction));
示例:http://jsfiddle.net/Ax79h/
您可以使用jQuery.live()
为其自动挂接事件:
$(function() {
$('#button').live('click', buttonFunction);
});
然后你只需要做HTML更新。但是,只有当你有多个类似的事件时,这才有帮助,否则你会在不同的地方有同样多的代码。
$("#button-container").html("<img id='button' src='button.png'>");
$("#button").click(buttonFunction);
可以更改为:
$("#button-container").html("<img id='button' src='button.png'>").find('#button').click(buttonFunction);
但它并没有那么优雅。