2011-07-30 50 views
0

我正在使用SmartCart.js腳本將產品從一個div標籤添加到另一個div標籤,但是當我運行此代碼時,未添加產品按鈕事件。爲什麼?jQuery - 添加到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)); 

添加產品。這些按鈕的事件我無法接收。

+0

如何以及何時是事件處理程序連接到*添加產品*按鈕? –

回答

0

將HTML附加到您的div後,您需要綁定onclick事件,或者您可以使用jQuery live函數來綁定事件。

+0

他不需要。他可以在html()中使用onclick – genesis

+0

這是'click'事件。 'onclick'只是屬性/屬性的名稱。 –

+0

是的,但他沒有添加任何添加產品按鈕的事件 –

0

警報()不是有效的功能

警報('');是一個有效函數

+1

除非'Alert'是OPs代碼中其他地方定義的函數。 –

+0

@JamesAllardice:當然,我知道。 – genesis

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 
});