2016-02-19 30 views
0

我想「DIV#歡迎一個」和「DIV#熟悉一個」指向這個js代碼這樣的:你將如何使HTML點的多個按鈕同一JS功能

$('div#Welcome a').click(function(e){ 

這:

$('div#Familiarize a').click(function(e){ 

爲點擊進入指定的代碼。我想知道是否有一種方法可以使我無需每次都做出新的功能。是否有我可以戴上的某些標籤的ID? 預先感謝您。

+2

您還可以使用逗號分隔的選擇 - '$( '#DIV一個歡迎,DIV#熟捻一個')點擊(函數(E){...});' –

+0

也可以添加。一個類既錨和綁定到該類 – Huangism

+0

僅供參考,你可以消除前4行代碼,只是'slider.goToSlide(this.id.replace(/ \ D/g,''))''。第一行不需要,因爲'return false;'處理它。 – 2016-02-19 19:55:41

回答

5

使您的代碼塊到一個名爲功能,並傳遞到您的事件處理程序:

function myEventHandler(e) { 
    e.preventDefault(); 
    var itemClicked = $(this); 
    var id = itemClicked.attr("id"); 
    id = id.replace(/\D/g,''); 
    slider.goToSlide(id); 
    return false; 
} 

$('div#Familiarize a').click(myEventHandler); 
$('div#Welcome a').click(myEventHandler); 

或者像@ mark.hch和@Huangism所指出的,你也可以用逗號分隔的選擇:

$('div#Familiarize a, div#Welcome a').click(myEventHandler); 
+2

'$('div#Welcome a,div#熟悉'')'保存你的一些字符 – Huangism

+0

難道我沒有辦法讓一個if或者什麼來驗證某些點擊嗎? – Kingrune

+0

你能更具體@Kingrune嗎? –

1

您可以使用逗號將它們分開,一起使用多個選擇器。

$('div#Familiarize a, div#Welcome a').click(function(e) { 
    e.preventDefault(); 
    var itemClicked = $(this); 
    var id = itemClicked.attr("id"); 
    id = id.replace(/\D/g,''); 
    slider.goToSlide(id); 
    return false; 
}); 

雖然把事情簡單化,我建議給所有相關DIV SA普通類,並使用在選擇:​​

0

你也可以給每個div都相同的類和處理程序附加到。

<div class="thisclass"> 

$('.thisclass').click(function (e) { 

} 
相關問題