我有一个下拉菜单,可以跟踪前一个和当前选定的元素。下拉默认值从{0}开始。当用户更改下拉列表时,new_value将存储为{2},但前一个值始终为{0},除非用户单击下拉列表然后重新关注新值,然后在此情况下先前更新该值{2}。
有没有办法可以强制重点更新,即使用户从不取消对下拉框的重点,基本上是每次更改事件?
(function () {
var previous;
$('select[name=item_a]').focus(function () {
previous = parseInt($(this).val()); }).change(function() {
var new_value = $(this).attr('id');
}
答案 0 :(得分:1)
var previous, new_value;
$('select[name=item_a]').on({
focus: function(){
previous = parseInt($(this).val());
},
change: function(){
new_value = $(this).attr('id');
$(this).blur();
}
});
答案 1 :(得分:0)
要触发焦点,您可以致电:
$('select[name=item_a]').trigger('focus')
答案 2 :(得分:0)
你可以这样使用
$("input").on("focus", function(e) {
your code
});
$("input").on("change", function(e) {
your code
});
答案 3 :(得分:0)
这应该在您更改时设置您的值:
var previous, current;
$('#select[name=item_a]').change(
previous = current;
current = $('#select[name=item_a]').val();
);
我也建议设置select的id,这样你就可以$('#selectId')
而不是$('select[name=item_a]')
它会有更好的性能,你的JQuery选择器将更容易阅读。