首页 > 解决方案 > 追加时(基本上是在某些东西出现之后。)

问题描述

我正在尝试在第三方脚本添加一些 html 后运行脚本,对于我来说,在添加某些内容后我找不到运行脚本的方法。

我一直在尝试使用延迟,但它不起作用。

$('#Form1').append('<div id="modal"></div>');

$('.AddToCartConfirmation > div > div').delay(1000).children('div, span').not(':first-child').wrapAll('<div class="orderInfo"></div>');

$('.AddToCartConfirmation > div > div').delay(1000).addClass('cartContents');

$('.ui-dialog-titlebar-close').delay(1000).append('<i class="fas fa-times"></i>');

$("#modal").click(function(){
    $('.ui-dialog.ui-corner-all.ui-widget.ui-widget-content.ui-front.ui-draggable').css({'opcaity':'none','visibility':'hidden'});
    $('a[href="/Cart.html"] img').css('display','none');
    $(this).css({'opcaity':'none','visibility':'hidden'});
});

标签: jqueryappenddelay

解决方案


为什么它不起作用?
如果问题与外部脚本之间的时间有关,请执行此操作,您可以使用它setInterval()来定期检查外部脚本添加的 html 是否退出并执行您想要的操作。

var timer = setInterval(function() {
  var element = $('#element_id_added_by_external_script');
  if (element) {
    // code to add class, etc...
    clearInterval(timer);
  }
}, 500);

推荐阅读