2009-10-08 72 views
10

目前我使用類似:如何將多個參數發送給jQuery點擊功能?

$('.myclass').click(function(){ 
    var msg = $(this).attr('id'); 
    alert(msg) 
}); 

和HTML:

< a href="#" class="myclass" id="101">Link</a> 

如果我需要更多的參數,我會怎麼看他們呢?目前我正在使用正確的方式嗎?最初我使用隱藏的輸入字段,因此它已經上升了。 :P

+0

它認爲是不好的慣例,開始與一些的ID,但如果你不使用它作爲一個ID,那麼它可能是好的 - 我最後一次檢查,Firefox將無法識別以數字開頭的ID。 – Mottie 2009-10-09 01:27:42

+0

是的,這是正確的fudgey ...不要開始你的ids w /數字,但我的答案中的想法仍然是一樣的。 – Jason 2009-10-09 17:22:14

回答

18

jQuery Events

jQuery .click()

$('.myclass').bind("click", { Param1: "", Param2: 2 }, function(event){ 
    alert(event.data.Param2); 
}); 
+3

這是否意味着我必須在同一頁面上包含此功能?目前我所有的js文件都在一個單獨的文件中。 – Roger 2009-10-09 00:33:45

+0

所以,我在事件數據中可以傳遞一個完整的json對象,不是嗎?很好的功能。 – 2012-07-16 15:57:19

+0

@Roger你也可以有外部函數,只要確保使用event.data.ParamX方法解析外部函數中的參數。它完美的作品。 – andreszs 2016-08-15 14:05:51

1

這可能不是最好的方法,但有些事我也做是連字符用其他參數描述id屬性,如id="101-red-420582",這三個參數意味着不同的東西,並且可以使用split()功能。本質上不是最好的,但我已經做到了,而且很有效。

+2

巧合的是我想出了這個確切的想法,它工作正常,但像你說的不太確定它的正確方式,有時字符串可能會相當大(不知道是否有限制的ID)。 – Roger 2009-10-09 00:35:38

+0

我一直使用類似的方法,但是使用'rel'屬性代替'id'。我相信任何一方都會持有儘可能多的信息,包括HTML。 – Mottie 2009-10-09 01:25:27

0

快速解決方案

<p class="msg_head" id="837" rel="a" **till_limit="9"**>Header-1 </p>

,你可以參考作爲

$(this).attr('till_limit'); 

這就好比定義自己的ID,並參照元素按照您的要求類似的解決方案。

+1

請在您的帖子中[請勿使用簽名或標語](http://stackoverflow.com/faq#signatures)。 – meagar 2010-12-05 05:47:28