Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 通过.load jquery方法加载其父div后,倒计时消失_Javascript_Jquery - Fatal编程技术网

Javascript 通过.load jquery方法加载其父div后,倒计时消失

Javascript 通过.load jquery方法加载其父div后,倒计时消失,javascript,jquery,Javascript,Jquery,我有一个倒计时,该倒计时在页面加载后激活: $(document).ready(function() { var rem_hour = $("#user-card-second-remaining").attr("rem_hour"); var rem_min = $("#user-card-second-remaining").attr("rem_min"); var rem_sec = $("#user-card-second-remaining").

我有一个倒计时,该倒计时在页面加载后激活:

  $(document).ready(function() {
      var rem_hour = $("#user-card-second-remaining").attr("rem_hour");
      var rem_min = $("#user-card-second-remaining").attr("rem_min");
      var rem_sec = $("#user-card-second-remaining").attr("rem_sec");
      var currentDate = new Date();
      var targetDate = new Date(currentDate.getTime() + rem_hour * 60 * 60000 + rem_min*60000 + rem_sec * 1000);

      $("#user-card-second-remaining").countdown(targetDate, function(event) {
          $(this).html(event.strftime('%H:%M:%S'));
      });
  });
每分钟,我都会加载此页面的一部分div,剩下的第二张用户卡就在这个加载的div中

function fn60sec() {
    // runs every 60 sec and runs on init.
    var pathname = window.location.pathname;

    var card = pathname + " #user-card";
    $( "#user-card-wrapper" ).load(card);
}
问题是,当我加载新的#用户卡剩余的第二个div时,倒计时事件消失

我认为,我应该刷新dom(而不是页面),这样就可以将.countdown方法绑定到fresh#user card剩余的第二个div中


如何才能做到这一点?

更新DOM时,所有附加到DOM元素的jquery内容都将被删除。 事实上,带有jquery styff的DOM元素被删除,并替换为另一个事件,全新的,没有jquery内容的事件

您需要做的是,按照您的建议,在更新DOM之后再次添加jquery内容

function fn60sec() {
  // runs every 60 sec and runs on init.
  var pathname = window.location.pathname;

  var card = pathname + " #user-card";
  $( "#user-card-wrapper" ).load(card, function() {

    var rem_hour = $("#user-card-second-remaining").attr("rem_hour");
    var rem_min = $("#user-card-second-remaining").attr("rem_min");
    var rem_sec = $("#user-card-second-remaining").attr("rem_sec");
    var currentDate = new Date();
    var targetDate = new Date(currentDate.getTime() + rem_hour * 60 * 60000 + rem_min*60000 + rem_sec * 1000);

    $("#user-card-second-remaining").countdown(targetDate, function(event) {
      $(this).html(event.strftime('%H:%M:%S'));
    });
  });
});

应该做到这一点。

更新DOM时,所有附加到DOM元素的jquery内容都将被删除。 事实上,带有jquery styff的DOM元素被删除,并替换为另一个事件,全新的,没有jquery内容的事件

您需要做的是,按照您的建议,在更新DOM之后再次添加jquery内容

function fn60sec() {
  // runs every 60 sec and runs on init.
  var pathname = window.location.pathname;

  var card = pathname + " #user-card";
  $( "#user-card-wrapper" ).load(card, function() {

    var rem_hour = $("#user-card-second-remaining").attr("rem_hour");
    var rem_min = $("#user-card-second-remaining").attr("rem_min");
    var rem_sec = $("#user-card-second-remaining").attr("rem_sec");
    var currentDate = new Date();
    var targetDate = new Date(currentDate.getTime() + rem_hour * 60 * 60000 + rem_min*60000 + rem_sec * 1000);

    $("#user-card-second-remaining").countdown(targetDate, function(event) {
      $(this).html(event.strftime('%H:%M:%S'));
    });
  });
});

应该做到这一点。

更新DOM时,所有附加到DOM元素的jquery内容都将被删除。 事实上,带有jquery styff的DOM元素被删除,并替换为另一个事件,全新的,没有jquery内容的事件

您需要做的是,按照您的建议,在更新DOM之后再次添加jquery内容

function fn60sec() {
  // runs every 60 sec and runs on init.
  var pathname = window.location.pathname;

  var card = pathname + " #user-card";
  $( "#user-card-wrapper" ).load(card, function() {

    var rem_hour = $("#user-card-second-remaining").attr("rem_hour");
    var rem_min = $("#user-card-second-remaining").attr("rem_min");
    var rem_sec = $("#user-card-second-remaining").attr("rem_sec");
    var currentDate = new Date();
    var targetDate = new Date(currentDate.getTime() + rem_hour * 60 * 60000 + rem_min*60000 + rem_sec * 1000);

    $("#user-card-second-remaining").countdown(targetDate, function(event) {
      $(this).html(event.strftime('%H:%M:%S'));
    });
  });
});

应该做到这一点。

更新DOM时,所有附加到DOM元素的jquery内容都将被删除。 事实上,带有jquery styff的DOM元素被删除,并替换为另一个事件,全新的,没有jquery内容的事件

您需要做的是,按照您的建议,在更新DOM之后再次添加jquery内容

function fn60sec() {
  // runs every 60 sec and runs on init.
  var pathname = window.location.pathname;

  var card = pathname + " #user-card";
  $( "#user-card-wrapper" ).load(card, function() {

    var rem_hour = $("#user-card-second-remaining").attr("rem_hour");
    var rem_min = $("#user-card-second-remaining").attr("rem_min");
    var rem_sec = $("#user-card-second-remaining").attr("rem_sec");
    var currentDate = new Date();
    var targetDate = new Date(currentDate.getTime() + rem_hour * 60 * 60000 + rem_min*60000 + rem_sec * 1000);

    $("#user-card-second-remaining").countdown(targetDate, function(event) {
      $(this).html(event.strftime('%H:%M:%S'));
    });
  });
});

应该做到这一点。

什么是库/插件。倒计时(从?您需要查看他们的文档,了解委派的事件重载,或者使用事件名称的替代方法,以便可以使用jquery
。on('eventname',

通常在这种情况下,您使用一种模式

$('staticSelector')。在('countdown','user card second resisting',function()…

这会在
#staticSelector
上侦听从
'用户卡第二剩余'
冒出的事件。因此
#staticSelector
需要始终存在的元素,但是
'用户卡第二剩余'
可以根据需要在正在刷新的div中刷新

此处有关直接和委托事件的部分解释了这一点:

什么是库/插件。倒计时(从?您需要查看他们的文档,了解委派的事件重载,或者使用事件名称的替代方法,以便可以在('eventname')上使用jquery

通常在这种情况下,您使用一种模式

$('staticSelector')。在('countdown','user card second resisting',function()…

这会在
#staticSelector
上侦听从
'用户卡第二剩余'
冒出的事件。因此
#staticSelector
需要始终存在的元素,但是
'用户卡第二剩余'
可以根据需要在正在刷新的div中刷新

此处有关直接和委托事件的部分解释了这一点:

什么是库/插件。倒计时(从?您需要查看他们的文档,了解委派的事件重载,或者使用事件名称的替代方法,以便可以在('eventname')上使用jquery

通常在这种情况下,您使用一种模式

$('staticSelector')。在('countdown','user card second resisting',function()…

这会在
#staticSelector
上侦听从
'用户卡第二剩余'
冒出的事件。因此
#staticSelector
需要始终存在的元素,但是
'用户卡第二剩余'
可以根据需要在正在刷新的div中刷新

此处有关直接和委托事件的部分解释了这一点:

什么是库/插件。倒计时(从?您需要查看他们的文档,了解委派的事件重载,或者使用事件名称的替代方法,以便可以在('eventname')上使用jquery

通常在这种情况下,您使用一种模式

$('staticSelector')。在('countdown','user card second resisting',function()…

这会在
#staticSelector
上侦听从
'用户卡第二剩余'
冒出的事件。因此
#staticSelector
需要始终存在的元素,但是
'用户卡第二剩余'
可以根据需要在正在刷新的div中刷新

此处有关直接和委托事件的部分解释了这一点:

我不认为倒数是一个事件。这是“最终倒数”。@DontVoteMeDown他将其称为一个事件,因此听起来像是删除/读取元素上的委托事件问题:“当我加载新的#用户卡剩余的第二个div时,倒数事件消失。”@DontVoteMeDown看到这一点,它是一个事件,因此函数处理程序有一个事件arg:我不认为
倒计时
是一个事件。它是“最终倒计时”。@DontVoteMeDown他将其称为一个事件,因此听起来像是删除/读取元素上的委托事件问题:“当我加载新的#用户卡剩余的第二个div时,倒计时事件消失。”@DontVoteMeDown看到这一点,这是一个事件,因此函数处理程序有一个事件参数:我不认为倒计时是一个事件。它是“最终倒计时”“@DontVoteMeDown Ah他将其称为一个事件,因此听起来像是删除/读取元素上的委托事件问题:“当我加载新的#用户卡第二个rema时。”