我正在编写一个带有以下代码的输入按钮:
$("#QnA").append("<input type='button' name='questionSub' value='Save'/>");
我想做的是捕获新按钮的点击功能。 这就是我的尝试:
$('input[name=questionSub]').click(function () {
alert('hi');
});
这对我不起作用。有什么想法吗?
答案 0 :(得分:3)
您需要对新创建的元素使用jQuery的live方法
$('input[name=questionSub]').live("click", function () {
alert('hi');
});
答案 1 :(得分:3)
您只能在创建元素后将事件绑定到元素,因此请确保在添加输入后发生单击绑定。
答案 2 :(得分:3)
您可以在创建时附加点击处理程序,如下所示:
$("<input type='button' name='questionSub' value='Save'/>").click(function() {
alert('hi');
}).appendTo("#QnA");
答案 3 :(得分:1)
It works for me. (jsFiddle Example)
只需确保在添加input
按钮后调用点击功能。
编辑:
如果要在附加输入之前绑定click函数,则只需要使用live(),因为live()会将事件的处理程序附加到与当前选择器匹配的所有元素,现在或者未来。