2013-01-16 126 views
0
所有控件的Click事件

目前我身後當用戶點擊一個按鈕(用按鈕的事件),並使用下面的AJAX調用代碼的函數:鉤住使用jQuery

$('.toggleBtn').click(function(e) { 
    $.ajax({ 
         type: "POST", 
         url: "page.aspx/function", 
         data: "{'id': '" + id + "'}", 
         contentType: "application/json; charset=utf-8", 
         dataType: "json", 
         async: false, 

         success: function (msg) { 

是否有可能在jQuery的掛鉤到當前頁面中的所有控件事件,並只運行一個$ .ajax。

說我有四個控件,兩個文本框和兩個組合框,並且要相應地更新數據庫。如果我想運行上面的代碼,我需要逐個鉤住它們的點擊事件,並在後面的代碼中運行單獨的函數,這不會很理想。

換句話說,一旦用戶選擇/輸入控制值,就要填充我的對象。

希望它是有道理的。

+0

給予類的所有4個輸入相同即toggleBtn –

+0

@Dnyan但我怎麼知道哪個控制充滿 – Zaki

+0

我需要澄清:點擊4個按鈕中的任何一個來執行相同的操作,或者單擊一個按鈕,並使用它來對4個不同的元素組執行操作,或者在四個元素內容中的任何一個發生變化時執行更新 - 或者您的意思是別的嗎?它也可能有助於在頁面上顯示一些標記。 –

回答

0

如果我理解你的問題,你問如何火一組元素的單擊事件相同的代碼,但希望通過被點擊元素的ID作爲數據中的參數。如果是這樣,這將做到這與該類className所有元素...

$('.className').click(function(e) { 
    $.ajax({ 
     type: "POST", 
     url: "page.aspx/function", 
     data: "{'id': '" + this.id + "'}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     async: false, 
     success: function (msg) { 
      ... 
      ... 
     } 
    }); 
}); 
+0

我認爲這將是很好的基於id我可以填充我的對象...是否有可能在ajax上運行無靜態方法..因爲我無法訪問我的控件在 – Zaki

+0

之後的代碼中在ajax調用*中需要訪問的客戶端上的任何值都必須通過'data'(或查詢字符串,但是後期數據顯然更可取)傳遞。這與服務器端功能是否是靜態無關。 – Archer

0

我認爲你可以使用這個邏輯:

var request = 0; //global flag 

$('.toggleBtn').click(function(e) { 
    if (!request) { 
     $.ajax({ 
     .. 
     success: function(){ 
      request = 1; //update the flag 
     } 
     }); 
    } 
}); 
+0

請分享downvote的原因。 –

+0

請問你能解釋一下,爲什麼這個標誌? – Zaki

+0

是不是我低調,但我想這是因爲他不要求它只發生一次。他在問如何爲一組元素做到這一點。你已經專注於單詞「一次」,但這不相關。他的意思是「之後」。 – Archer