0

以前は、使用していたコードが機能していました。しかし、今日、コードを再利用すると、まったく機能しません。

コード/ケースの状況: 既存のデフォルト フォームの後に新しいフォームを挿入する HTML コードを事前に定義しました。jQuery を使用して、新しいフォームのボタンの 1 つに関数を追加しようとしてclickいます。jQuery コードは

$("button[value='ADDTSG']").click(function(){
    var NEW = "<div class='w175 mR9 mB9 p9 rCor cWhi' id='fL'><form action='pro/lab_handle.php' method='post'><input type='hidden' value='0' name='LID'/><div class='w65 B ttU mR9' id='fL'>TPC</div><input type='text' class='w65 Dg4' name='QTPC'/><br/><hr/><button value='NEWTSG' name='BTN' type='submit'><img src='img/add.png'/></button><button id='fR' type='button' value='XTSG'><img src='img/del.png'/></button></form></div>";

    $(".FORCLONE").after(NEW);
    $("button[value='ADDTSG']").hide();
    $("button[value='SAVETSG']").hide();
});

// buttons below not alerting at all, no function after click on it
$("button[value='XTSG']").click(function(){
    alert("close tsg"); return false;
});
$("button[value='NEWTSG']").click(function(){
    alert("new tsg"); return false;
});

デフォルトフォームのhtmlは

<div id='fL' class='FORCLONE'>
<div id='fL' class='w175 bgBlu1 mR9 mB9 p9 rCor cWhi'>
    <form method='post' action='pro/lab_handle.php'>
        <input type='hidden' name='LID' value='1'>
        <div id='fL' class='w65 B ttU mR9'>TPC</div><input type='text' name='MTPC' class='w65 Dg4' value='555'>
        <button type='submit' name='BTN' value='SAVETSG'><img src='img/ok.png'></button>
        <button id='fR' type='button' value='ADDTSG'><img src='img/add.png'></button>
    </form>
</div>
</div>

これが機能しない理由を誰かに教えてもらえますか? ちなみに、web-developer プラグインで FireFox を使用していますが、「XTSG」/「NEWTSG」ボタンをクリックしても、javascript エラーは表示されません。

4

1 に答える 1

6

.live()を使用します (古い jquery バージョンの場合 - < v1.7):

$('#btnALERT1').live('click', function()
{
   alert("Hello");
});

または:

$(document).delegate('#btnALERT1', 'click', function() 
{
   alert("Hello");
});

.on()を使用します (新しい jquery バージョンの場合 - >= 1.7):

$(document).on('click', '#btnALERT1', function()
{
   alert("Hello");
});

ソース

于 2012-10-07T08:34:03.753 に答える