变量保留旧值
问题描述:
每当我第二次点击'#print'按钮时,第一次点击的值就会在真实值之前打印出来。变量保留旧值
例如: 我第一次点击按钮。警告框打印出正确的值('test1')。
我第二次单击按钮。警告框打印出第一个值('test1'),然后按OK,然后在警告框中打印出第二个值('test2')。
任何想法我做错了什么?
$(".ipdate").focus(function() {
/*$('.dateBox').hide();*/
var tit = $(this).attr('id');
/*var full = '#'+tit+'B';*/
$('#dateBox').show();
$('#print').on('click', function(){
var bottle = $('.sday').val()+' '+$('.smon').val()+' '+$('.syear').val();
$('#'+tit).val(bottle);
alert(tit);
});
$('#close').on('click',function() {
$('#dateBox').hide();
});
});
答
您正在注册多个事件,这就是为什么你看到多个操作!你看到了吗? :)我有类似的情况,我花了一段时间才挑选出来。在发布新事件之前,您可以取消注册旧事件。
$(".ipdate").focus(function() {
/*$('.dateBox').hide();*/
var tit = $(this).attr('id');
/*var full = '#'+tit+'B';*/
$('#dateBox').show();
$('#print').off('click');
$('#print').on('click', function(){
var bottle = $('.sday').val()+' '+$('.smon').val()+' '+$('.syear').val();
$('#'+tit).val(bottle);
alert(tit);
});
$('#close').off('click');
$('#close').on('click',function() {
$('#dateBox').hide();
});
});
这应该解决您的问题。使用off
将取消注册旧事件。
哦,真棒,非常感谢你:)我可能永远不会说出来:D – John 2012-08-03 21:28:33
@约翰 - 当发生在我身上它花了很长时间才发现哈哈,这很痛苦:) – 2012-08-03 21:29:14
嘿嘿,是啊,我可以想象:D – John 2012-08-03 21:30:59