2009-10-24 91 views
1

HTML:的jQuery綁定事件

<ul> 
    <li><input type="submit" id="myId" value="someVal"/> 
</ul> 

jQuery的

$('ul').find('input[type="submit"]').click(function{ 
     alert('nasty alert') 
     $(this).attr('id','newId'); 
}); 

$('input#newId').click(function(){ 
      $(this).hide(); 
}); 

好了,我的本意是在一次點擊,然後按鈕做別的事情(隱藏)更改ID。我也嘗試過live()。在螢火蟲它看起來像id已經改變,但我第二次點擊按鈕觸發相同的警報('討厭警報')。和一些奇怪的...如果我使用live(),鼠標右鍵點擊按鈕消失(像它應該)。任何sugestions?感謝

回答

2

你基本上附加click事件處理兩次以相同的輸入。

沒有理由你應該連接兩個事件處理程序,我已經更新了代碼,使一個變量被用於跟蹤。

編輯:固定的語法錯誤,現在它的使用.data

<ul> 
<form> 
<input type=submit value=go> 
</form> 
</ul> 
<script src=http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js></script> 
<script> 


    $('ul').find('input[type="submit"]').click(function() { 
      if (!$(this).data('_clicked')) { 
       alert('nasty alert') 
       $(this).attr('id','newId'); 
       $(this).data('_clicked', true); 
      } else { 
       $(this).hide(); 
      } 
      return false; 
    }); 
</script> 
+0

嗯,理論上應該工作,但它沒有,現在只是觸發隱藏()方法 – kmunky 2009-10-24 01:20:57

+0

你有一個演示? – 2009-10-24 01:22:48

+0

不,我的代碼是非常非常複雜,但我簡化它得到的想法 – kmunky 2009-10-24 01:24:05