我有一个下拉菜单,我想连接一个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