2015-02-17 66 views
0

對不起,如果標題不準確。不知道如何正確描述它。合併多個點擊事件

我有這個和它的偉大工程:

$(document).on('click', '.flrapPM01', function(event) { 
    toggleDiv('premiereModal01'); 
}); 

$(document).on('click', '.flrapPM02', function(event) { 
    toggleDiv('premiereModal02'); 
}); 

$(document).on('click', '.flrapPM03', function(event) { 
    toggleDiv('premiereModal03'); 
}); 

但我想鞏固上面,並把它變成一個外部JS文件。

這是據我得到:

function fireModal() { 
    .on('click', '.flrapPM01', function(event) {toggleDiv('premiereModal01');}); 
    .on('click', '.flrapPM02', function(event) {toggleDiv('premiereModal02');}); 
    .on('click', '.flrapPM03', function(event) {toggleDiv('premiereModal03');}); 
} 

我如何確保'click'作品在移動設備上觸摸時?

預先感謝您!

回答

2

有很多不同的方法可以輕鬆做到這一點。使用您當前的代碼,您可以使用選擇器(如'.flrapPM01, .flrapPM02, .flrapPM03''[class*=flrapPM]'),然後您可以使用簡單的正則表達式從該類中提取數字(例如/(?!flrapPM)\d+/)。老實說,雖然,我會考慮使用數據屬性並以這種方式傳遞ID,如果你有控制標記。總之,這裏是一個簡單的例子:

$(document).on('click', '[class*=flrapPM]', function(event) { 
 
    var num = this.className.match(/(?!flrapPM)\d+/); 
 
    toggleDiv('premiereModal' + num); 
 
}); 
 

 
function toggleDiv(which) { 
 
    alert(which); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<button class="flrapPM01 btn other class">PM01</button> 
 
<button class="something flrapPM02">PM02</button> 
 
<button class="flrapPM03">PM03</button>

+0

這是輝煌!謝謝。我正在使用該類,因爲我不確定SharePoint是否會接受數據屬性。我想過,但由於SharePoint剝離了我正在添加到''的腳本'我想我會試試下一個類,看看它是否工作,它做了什麼。但我肯定會嘗試使用數據屬性來查看(並學習)。再次感謝你。我無法告訴你我多麼感激。 – FrankDraws 2015-02-18 15:14:30

+0

@FrankDraws不客氣。很高興我能幫上忙。 :) – 2015-02-18 15:29:49