2012-10-07 81 views
0

以前,我使用的代碼正在工作。但是今天,當我重新使用代碼時,它根本不工作。JQuery - 單擊(fn)不起作用的動態添加按鈕

代碼/案例情況: 我預先定義了一個html代碼,它在現有的默認表單後面插入一個新表單。我試圖使用jQuery一個click功能添加到新的form.The 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> 

誰能告訴我爲什麼這不起作用?順便說一下,我使用FireFox和web-developer插件,並且即使點擊「XTSG」/「NEWTSG」按鈕,也沒有顯示javascript錯誤。

+0

你的jQuery版本是什麼?如果它是舊的,'.click()'只綁定已在頁面上的元素,而不是稍後添加的元素。 –

+0

使用這個jquery-1.7.2.min.js,我知道這不是最新的。這個版本有什麼問題?所以.click()不能使用?那我應該用什麼? – user1493339

+1

'.live'已棄用。根據您的版本使用'.on'(> = 1.7)或'.delegate'(<1.7)。 [來源](http://api.jquery.com/live/)。 –

回答

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

Source

相關問題