2010-11-24 51 views
4

任何人都可以幫忙嗎?JQuery:從文本框更改事件html控件取消HTML按鈕的Click事件(現場活動)

我有一個文本框上的更改事件和一個按鈕上的單擊事件 - 所有的HTML。

現在,如果我點擊按鈕,點擊事件發生 - 太棒了!

但我改變了文本框中的內容,然後點擊按鈕,來自Change事件發生的事件很棒,但我從來沒有在按鈕中獲得點擊事件。

這是我的jQuery,有沒有辦法解決這個問題..我迷路了。

$('#myTextbox').live('change', function() { 
     $.ajax({ 
      type: "POST", 
      url: "test.aspx/GetDate", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(msg) { 
       alert('the date is ' + msg.d); 
      } 
     }); 


    }); 

    $('#myButton').live('click', function() { 
     alert('i am in click'); 

    }); 

編輯

我創建了一個非常簡單的HTML表單果然click事件不火,如果變化首先解僱 - 其實在這個例子中我使用了模糊事件...但它是相同的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 

    <script src="Scripts/jquery-1.4.2.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
    $(function() { 
     $('#htmlbutton').bind('click', function() { 

      alert('i am in click'); 

     }); 



     $('#htmltextbox').bind('blur', function() { 

      alert('in blur'); 

     }); 
    }); 
</script> 

</head> 
<body> 
    <form id="form1"> 
    <div> 
     <input id="htmlbutton" type="button" value="button" /><input id="htmltextbox" type="text" /></div> 
    </form> 
</body> 
</html> 
+0

您能否在jsFiddle上創建一個示例頁面?這可能是真的。你確定表單沒有提交嗎?也許你應該通過返回假結束取消點擊事件.. – Harmen 2010-11-24 14:25:10

+0

嗯,是的,我很確定它沒有提交...我有警報('我在點擊');在那裏...正如我所說如果我不把任何東西在文本框中,然後改變事件不會發生,但然後我得到按鈕上的點擊事件 – Martin 2010-11-24 14:30:08

回答

3

看起來你的警報是擠壓按鈕點擊事件。如果不是提醒,而是改變兩個元素的顏色,你會發現兩個事件都被解僱了。

當鼠標按鈕按下按鈕時,模糊/更改事件就會被觸發。由於存在提醒,因此您必須將其關閉,並且不會將按鈕註冊到按鈕上,這是點擊事件觸發所需的。

ajax應該已經完成​​並進入下一個事件。除非呼叫回來太快,否則即使是咔嚓一聲。