jQuery - 添加到div标签的按钮事件未触发

时间:2011-07-30 09:31:46

标签: jquery

我正在使用SmartCart.js脚本将产品从一个div标签添加到另一个div标签,但是当我运行此代码时,不会触发“添加产品”按钮的事件。为什么呢?

var HTML = '<div class="scProductListItem">'+
           '<table border="0" cellpadding="2" cellspacing="2">'+
           '<tr>'+
           '<td rowspan="3"><img width="100px" src="http://webscopia.com/wp-content/uploads/2011/06/Google.plus-get-an-invite-from-me.jpg" alt="Not availabel" /></td>'+
           '<td><strong><span id="prod_name'+'test'+'">'+'detail_product[0]'+'</span></strong></td>'+
           '</tr>'+
           '<tr>'+
           '<td>'+
           '<input type="button" rel="'+'test'+'" class="scItemButton scBtn" value="Add Product">'+
           '</td>'+
           '</tr>'+
           '</table>'+
           '<input type="button" value="TestButton" name="Test" onclick="Alert()"/>'+
           '</div>';

$('#sc_productlist').append($(HTML));

添加产品。这些按钮的事件是我无法接收的。

3 个答案:

答案 0 :(得分:0)

您需要在将HTML附加到div之后绑定onclick事件,或者您可以使用jQuery live 函数来绑定事件。

答案 1 :(得分:0)

Alert()不是有效的功能

警报(的 '');是一个有效的功能

答案 2 :(得分:0)

那是因为您没有为该按钮指定任何事件。尝试添加onclick事件:

'<input type="button" rel="'+'test'+'" class="scItemButton scBtn" value="Add Product" onclick="alert(\'Add product\');">'+

如果您使用jQuery添加了一个事件,那么它不起作用,因为您只将事件添加到当时存在的元素。您必须在创建事件后将事件添加到新按钮,或使用delegate方法将事件处理程序添加到已存在的父元素:

$('#sc_productlist').delegate('.scItemButton', 'click', function(){
  // code to handle the event
});