簡體   English   中英

jQuery檢測單擊了哪個ID

[英]jQuery detect which id is clicked

我需要在准備好文檔以及單擊按鈕時啟動功能。 如果單擊了按鈕,則需要檢測單擊了哪個ID。

要開始我做的功能

process_add_to_chart();// this is for document ready
$( '[id^="button_add_to_cart_"]' ).click(function(){
process_add_to_chart();
});

然后

function process_add_to_chart(){   }

函數啟動,但是如何獲取id的attr?

var id = $(this).attr('id');

不起作用。 獲取未定義

啊,對不起,似乎必須在其中定義全局ID

$( '[id^="button_add_to_cart_"]' ).click(function(){   });

因為你叫process_add_to_char真正的處理程序中( function () { ... })你就失去了原有的this “上下文”(點擊的元素),而this是現在的window對象。

因此,您需要像這樣綁定處理程序:

$( '[id^="button_add_to_cart_"]' ).click(process_add_to_chart);

然后, this將是被單擊的元素。


另一種方法是使用call方法將this參數傳遞給內部函數,如下所示:

$( '[id^="button_add_to_cart_"]' ).click(function(){
     process_add_to_chart.call(this);
});

進一步閱讀: JavaScript-this關鍵字

$('[id^="button_add_to_cart_"]').click(function(){
   process_add_to_chart(this);
});

function process_add_to_chart(obj){
  if(obj != null){
   var id = $(obj).attr('id');
  }
}

將單擊的元素對象引用傳遞給您的函數。

演示:

http://jsfiddle.net/9y8bLg22/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM