Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
清除Javascript中的Var或回调_Javascript_Jquery_Callback - Fatal编程技术网

清除Javascript中的Var或回调

清除Javascript中的Var或回调,javascript,jquery,callback,Javascript,Jquery,Callback,对不起,我不确定我问的问题是否正确。当用户更改日期时,页面上的日期倒计时会更改。如果日期更改多次,则会闪烁所有日期更改。我猜它是在某处存储以前的信息。我已经试着清理过了 var deal_yeax = ''; 就像我在php中所做的那样,没有运气 $('#deal_end').focusout(function() { var deal_end = $("#deal_end").val(); var array = deal_end .split('-'); var deal_montx =

对不起,我不确定我问的问题是否正确。当用户更改日期时,页面上的日期倒计时会更改。如果日期更改多次,则会闪烁所有日期更改。我猜它是在某处存储以前的信息。我已经试着清理过了

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"); 
        }
    }
});
});
});

问题似乎出在.倒计时功能上,您在代码中使用它来闪烁日期更改。当您将一个新的倒计时对象分配给$.h时,插件或函数可能会为它分配一些事件处理程序或时间间隔,但当再次调用它时,它似乎不会清除旧的对象,这就是为什么它会闪烁每个倒计时的所有日期。因此,您必须手动执行此操作。我不确定您是在使用外部插件还是自己的函数,但您需要做的是在调用函数时清除分配给元素的现有事件或间隔。如果你告诉我你正在使用哪个插件,或者如果它是你自己的函数,我会更有用。参考.countdown

,问题似乎在于代码中用于刷新日期更改的.countdown函数。当您将一个新的倒计时对象分配给$.h时,插件或函数可能会为它分配一些事件处理程序或时间间隔,但当再次调用它时,它似乎不会清除旧的对象,这就是为什么它会闪烁每个倒计时的所有日期。因此,您必须手动执行此操作。我不确定您是在使用外部插件还是自己的函数,但您需要做的是在调用函数时清除分配给元素的现有事件或间隔。如果你告诉我你正在使用哪个插件,或者如果它是你自己的函数,我会更有用。参考.countdown

每当您从交易结束开始关注时,都会将倒计时事件附加到.h。不知道倒计时是怎么回事。。。如果你能提供源代码,我们就可以提供更多的帮助!,解决此问题的一种方法可能是使用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);
    });
});
一句话:这似乎是焦点出。。。每次触发时都会添加新的倒计时。这可能就是你的问题所在

不确定这是否有用?让我知道


附带提示:每次您从交易结束时,都会在.h上附加一个倒计时事件。不知道倒计时是怎么回事。。。如果你能提供源代码,我们就可以提供更多的帮助!,解决此问题的一种方法可能是使用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);
    });
});
一句话:这似乎是焦点出。。。每次触发时都会添加新的倒计时。这可能就是你的问题所在

不确定这是否有用?让我知道


附带提示:ts和消息日是全局变量。在第一次使用它们之前添加var。@c69谢谢,但这并不能解决我的问题problem@MHowey这就是为什么他写在评论中而不是在回答中。ts和message_days是全局变量。在第一次使用它们之前添加var。@c69谢谢,但这并不能解决我的问题problem@MHowey这就是为什么他把它写在评论中,而不是回答。