var markup = "<tr><td colspan='2'><h1>${hotelname}</h1></td></tr>
<tr><td><input type=button value=MoreInformation id=btncabinmoreinfo1></td></tr>";
$.template("cabinTemplate", markup);
此动态按钮ID无效。这是在jquery模板中创建动态按钮的正确方法吗?
按钮点击代码:
$("#btncabinmoreinfo1").click(function () {
alert("more info");
});
当我点击这个MoreInformation按钮时,我没有收到任何警报。
答案 0 :(得分:0)
ID必须是唯一的,因此如果您在循环中多次使用它会导致问题。它应该是一个类。
如果您将其更改为class = btncabinmoreinfo1,然后将click事件更改为
$(“。btncabinmoreinfo1”)。click(function(){ 警报(“更多信息”);
你可能会有更多的运气。
答案 1 :(得分:0)
你做错了。你没有使用输入按钮的id和值的引号。
var markup = '<tr><td colspan="2"><h1>${hotelname}</h1></td></tr> <tr><td><input type="button" value="MoreInformation" id="btncabinmoreinfo1"></td></tr>';
然后为按钮编写click事件:
$("#btncabinmoreinfo1").click(function () {
alert("//something");
})
答案 2 :(得分:0)
我认为你这样做是为了
var markup = "<tr><td colspan='2'><h1>${hotelname}</h1></td></tr>
<tr><td><input type=button value=MoreInformation id=btncabinmoreinfo1></td></tr>";
$.template("cabinTemplate", markup);
并附加一些像
这样的容器$.tmpl( "cabinTemplate", data).appendTo( "#elementid" );
然后
$("#btncabinmoreinfo1").click(function () {
alert("more info");
});
所以,您可以进行一些更改,例如
var markup = "<tr><td colspan='2'><h1>${hotelname}</h1></td></tr>
<tr><td><input type='button' value='MoreInformation' class='btncabinmoreinfo1'></td></tr>";
$.template("cabinTemplate", markup);
$("#elementid").on('click' , '.btncabinmoreinfo1',(function () {
alert("more info");
});
您可以在此处查看.on的使用情况。
委托事件方法仅将事件处理程序附加到一个元素#elementid
,并且事件只需要冒泡(从点击的.btncabinmoreinfo1
到#elementid
):< / p>
因此,通过点击#elementid
将事件附加到.btncabinmoreinfo1
元素将会冒泡,因此新的动态元素也可以响应事件。
我希望,这会有所帮助:)