2011-07-30 8 views
0

SmartCart.jsスクリプトを使用して1つの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

あなたのdivにHTMLを追加したり、イベントをバインドするjQueryのlive機能を使用することができた後onclickイベントをバインドする必要があります。

+0

彼はそうする必要はありません。彼はhtml()でもonclickを使うことができます – genesis

+0

これは 'click'イベントです。 'onclick'はプロパティ/属性の名前だけです。 –

+0

はい、しかし、彼は製品追加ボタンのイベントを追加していません –

0

アラート()

警告('')有効な関数ではありません。有効な関数です

+1

'警告 'はOPコードの他の場所で定義された関数でない限り。 –

+0

@JamesAllardice:確かに、私は知っています。 – genesis

0

これは、そのボタンにイベントが指定されていないためです。 onclickイベントを追加しよう:あなたはjQueryのを使用してイベントを追加した場合にのみ、その時点で存在する要素にイベントを追加するので、それは動作しません

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

。あなたはそれを作成した後、新しいボタンにイベントを追加したり、すでに存在している親要素にイベントハンドラを追加するためにdelegateメソッドを使用しなければならないでしょう:

$('#sc_productlist').delegate('.scItemButton', 'click', function(){ 
    // code to handle the event 
}); 
関連する問題