使用JQuery或JavaScript,我想检测用户何时选择一个值,即使他们没有更改已经选择的值。
Using JQuery or JavaScript, I want to detect when a user selects a value, even if they don't change the already selected value.
这怎么可能是完成?
我试过 -
$('#MyID').select(function(){ /*my function*/ });和
$('#MyID').change(function(){ /*my function*/ }); //nothing changing, so this fails但它们不起作用。
示例 - 我有一个带有年份列表的下拉列表,没有选择任何内容,用户选择1976,我运行一个函数。选择1976后,用户再次点击下拉菜单并再次选择1976 ,我想再次运行该功能。
Example - I have a dropdown with a list of years in it with nothing selected, the user selects "1976", I run a function. With "1976" selected, the user clicks on the dropdown again and selects "1976" again, I want to run the function again.
推荐答案所有系统(至少在第二次点击...)
all systems go (on second click at least...)
设置一个开关运行选择时,并在捕获后重置开关和/或模糊。
Set a switch to run on selection, and reset the switch after it's captured and/or on blur.
var go = false;//switch off $('#MyID').on('click',function() {//on click if (go) {//if go //do stuff here with $(this).val() go = false;//switch off } else { go = true; }//if !go, switch on }).on('blur', function() { go = false; });//switch off on blur做了一个小提琴: jsfiddle/filever10/2XBVf/
编辑以获得键盘支持,这样的事情应该可行。
edit: for keyboard support as well, something like this should work.
var go = false;//switch off $('#MyID').on('focus active click',function() {//on focus/active doit($(this));//do it }).on('change', function() { go=true;//go doit($(this));//and doit }).on('blur', function() { go = false; });//switch off on blur function doit(el) { if (go) {//if go //do stuff here with el.val() go = false;//switch off } else {go=true}//else go }做了一个小提琴: jsfiddle/filever10/ TyGPU /
更多推荐
即使没有更改,也会选择JQuery检测下拉列表值
发布评论