簡體   English   中英

使用jQuery單擊時擺脫onclick

[英]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.

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