[英]Getting rid of the onclick when clicked with jQuery
好的,所以我有一些選擇的城市標簽
<select onchange="storeCity(this.value, false)" name="search[city]" id="search_city" class="left">
<option value="">== Select City ==</option>
<optgroup label="Florida"><option selected="selected" value="ft-myers-sarasota-fl">Ft. Myers / Sarasota </option>
<option value="jacksonville-fl">Jacksonville</option>
<option value="miami-fl">Miami / Ft. Lauderdale </option>
<option value="orlando-fl">Orlando</option>
<option value="tampa-fl">Tampa</option></optgroup></select>
一些城市現在不可用,因此單擊它們時我需要一個燈箱彈出...我正在使用此代碼
$('#search_city').change(function(e) {
e.preventDefault();
if ($(this).val() == 'jacksonville-fl' || $(this).val() == 'miami-fl' || $(this).val() == 'tampa-fl' || $(this).val() == 'ft-myers-sarasota-fl') {
}
我的問題是無論如何都轉到鏈接,我需要它擺脫鏈接或選擇上的onchange ...某些東西正在刷新頁面...但是我不知道
您可能為此使用jQuery的.one()
函數 。 例如
$('#search_city').one('change', function() {
/* Your code */
});
change
事件將僅執行一次。
storeCity(this.value,false)可能導致刷新
順便說一句,您可以合並這樣的代碼:
$('#search_city').change(function(e) {
storeCity(this.value, false);
if (this.value.match(/(jacksonville-fl|miami-fl|tampa-fl|ft-myers-sarasota-fl)/i)) {
//do some stuff
}
e.preventDefault();
});
你有一個方法叫做
storeCity(this.value, false)
發生更改事件時,這可能正在刷新頁面。 檢查出。
還要警告一下-我不會在CHANGE事件上使用e.preventDefault()(除非您確實需要),因為它在某些瀏覽器中可能會有一些奇怪的行為。 通常,這僅用於CLICK事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.