2014-12-03 86 views
-1

嗨,大家好,我从网络获得了以下代码并根据需要进行了修改,但未按预期工作。如何使用jQuery单击取消按钮时恢复下拉选择选项?

var lastValue; 

$("#changer").bind("click", function(e){ 
    lastValue = $(this).val(); 
}).bind("change", function(e){ 
    changeConfirmation = confirm("Really?"); 
    if (changeConfirmation) { 
     // Proceed as planned 
    } else { 
     //$(this).val(lastValue); 
     DummyFun(); 
    } 
}); 

function DummyFun() 
{ 
    alert(lastValue); 
    $(this).val(lastValue); 
} 

这里是我从哪里得到的代码,它工作正常fiddle。我怎样才能让我的工作像小提琴一样工作?

回答

1

在DummyFun函数中不能使用$(this)来引用select元素,因为它超出了范围。

function DummyFun() 
{ 
    alert(lastValue); 
    $("#changer").val(lastValue); 
} 
1

问题是函数DummyFun。 this不是指元素输入不在范围内。 this指的是调用该函数的内容。请使用以下内容:

var lastValue; 

$("#changer").bind("click", function(e){ 
    lastValue = $(this).val(); 
}).bind("change", function(e){ 
    changeConfirmation = confirm("Really?"); 
    if (changeConfirmation) { 
     // Proceed as planned 
    } else { 
     //$(this).val(lastValue); 
     DummyFun(e.currentTarget); 
    } 
}); 

function DummyFun(target) 
{ 
    alert(lastValue); 
    $(target).val(lastValue); 
} 
相关问题