抱歉,我不确定我问的问题是否正确。当用户更改日期时,页面上的日期倒计时会发生变化。如果日期更改不止一次,它会闪烁所有日期更改。我猜它是将以前的信息存储在某处。我试过清除变量。
var deal_yeax = '';
就像我在没有运气的情况下在 php 中所做的那样
$('#deal_end').focusout(function() {
var deal_end = $("#deal_end").val();
var array = deal_end .split('-');
var deal_montx = array[0];
var deal_dax = array[1];
var deal_yeax = array[2];
deal_montx = deal_montx - 1;
$(function(){
ts = new Date(deal_yeax , deal_montx , deal_dax );
$(".h").countdown({
timestamp : ts,
callback : function(days, hours, minutes, seconds){
message_days = (days);
var message_hours = (hours);
$(".message_hours").text(message_hours + " Hours");
var message_minutes = (minutes);
$(".message_minutes").text(message_minutes + " Minutes");
var message_seconds = (seconds);
// Creat the display
if ( message_days < 1 && message_hours < 1 ) { $(".message_seconds").text(message_seconds + " Seconds"); }
else if ( message_days < 1 && message_hours > 1 ) { }
else if ( message_days == 1 ) { $(".message_days").text(message_days + " Day"); }
else { $(".message_days").text(message_days + " Days"); }
if ( message_days < 1 && message_hours < 1 && message_minutes < 1 && seconds < 1 ) {
$(".hide_my_buy_button").fadeOut("fast");
}
}
});
});
});
最佳答案
每次您从 #deal_end
中“focusout”时,您都会将一个 countdown
事件附加到 .h
。在不知道 countdown(...)
确切如何工作的情况下(最好提供源代码以便我们提供更多帮助!),解决该问题的一种方法可能是使用 JQuery 的 unbind(...)
函数在添加新事件之前删除事件上的现有监听器。
这里有一个关于这个问题的例子:
<!-- HTML -->
<div>
<input id="text" />
<button id="clicker" />
</div>
<!-- Javascript -->
$('#text').focusout(function() {
var text = this.value;
// Everytime #text is "focused out", a new event is registered with #clicker.
$('#clicker').click(function() {
console.log('Value: ' + text);
});
});
...这是解决问题的方法(这只是众多方法中的一种。这种方法可能不是最优雅的,但无论如何。)
$('#text').focusout(function() {
var text = this.value;
$('#clicker').unbind('click');
// Everytime #text is "focused out", a new event is registered with #clicker.
$('#clicker').click(function() {
console.log('Value: ' + text);
});
});
底线:似乎 focusout(...) 每次被触发时都会添加一个新的 countdown
。这可能是您遇到的问题。
不确定这是否有帮助?让我知道。
附言JSFiddle 与它一起去:http://jsfiddle.net/PE9eW/
关于javascript - 清除 Javascript 中的 Var 或回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10048504/