好的,所以我有一些城市的选择标签
<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 ......有些东西让页面刷新...但我不知道是什么< / p>
答案 0 :(得分:2)
您可以使用jQuery's .one()
function。 E.g。
$('#search_city').one('change', function() {
/* Your code */
});
change
事件只会执行一次。
答案 1 :(得分:2)
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();
});
答案 2 :(得分:1)
你有一个名为
的方法storeCity(this.value, false)
关于更改事件,这可能会刷新页面。检查一下。
答案 3 :(得分:0)
还有一个警告 - 我不会在CHANGE事件上使用e.preventDefault()(除非你真的需要),因为它在某些浏览器中会有一些奇怪的行为。通常这只是为了CLICK事件。