我有一個下拉菜單,我想連接一個JQuery事件,如果有人點擊它,然後選擇相同的選項已經選定。當選擇下拉菜單時觸發JQuery事件 - 但值不變
我已經使用「更改」事件運行了所有內容,但有些情況下用戶單擊下拉列表並重新選擇相同的選項也是有效的。如果發生這種情況,我需要啓動事件處理程序。
我該怎麼做?
我有一個下拉菜單,我想連接一個JQuery事件,如果有人點擊它,然後選擇相同的選項已經選定。當選擇下拉菜單時觸發JQuery事件 - 但值不變
我已經使用「更改」事件運行了所有內容,但有些情況下用戶單擊下拉列表並重新選擇相同的選項也是有效的。如果發生這種情況,我需要啓動事件處理程序。
我該怎麼做?
嘗試類似下面,
使用.click
$(function() {
var cc = 0;
$('select').click(function() {
cc++;
if (cc == 2) {
$(this).change();
cc = 0;
}
}).change (function() {
$('#result').append('Changed triggered ');
cc = -1;
});
});
DEMO:http://jsfiddle.net/skram/NAHXP/2/
或者使用.focus
和.blur
$(function() {
var ddVal = '';
$('select').focus(function() {
ddVal = $(this).val();
}).blur(function() {
if (ddVal == $(this).val()) {
$(this).change();
}
}).change (function() {
$('#result').append('Changed triggered ');
});
});
在這兩個jsfiddles上,我都可以點擊'test1',然後從下拉列表中單擊,然後單擊並重新選擇'test1' - 並且不會觸發更改。這是你的意圖嗎?我需要改變才能觸發。 –
使用對焦和模糊事件......
var selectValue;
$('select').focus(function(){
selectValue = $(this).val();
}).blur(function(){
if (selectValue == $(this).val()) {
//nothing change event
}
})
使用添加類來解決這個問題
$("#test").change(function(event){
if($(this).find('option:selected').hasClass('actived'))
alert('already selected');//write you code here
else
$(this).find('option:selected').addClass('actived');
});
如果「更改」事件沒有觸發,這是否工作?我的問題是變化事件沒有解僱。 –
沒有沒有改變的事件沒有工作。你能多解釋一下嗎? – MMK
如果您選擇一個選項,然後返回並稍後選擇* same *選項 - 我仍然需要觸發該事件。 –
向我們展示你的HTML和jQuery代碼,請 – Shyju
爲什麼不使用 'click' 事件? – Blazemonger