在元素消失/加载完成后做一些事情

Posted

技术标签:

【中文标题】在元素消失/加载完成后做一些事情【英文标题】:Do something after element disappeared / load done 【发布时间】:2020-10-06 01:33:58 【问题描述】:

我正在使用类似这个演示的商店引擎:https://demo.abstore.pl/ 当我将一些东西添加到购物车然后去结帐https://demo.abstore.pl/order/checkout/cart/ 时,我想在更改任何无线电输入后做一些事情。因此,当我更改任何收音机时,将显示正在加载,然后我想在完成后隐藏元素。 例如,我想在右侧面板上隐藏 ID 为 #proceedButton 的紫色按钮。 我试过这段代码,但它不工作。按钮被隐藏,但过了一段时间它就可见了。

$('#message-div-out-ajax').bind('DOMSubtreeModified', function(e) 
        $('#proceedButton').css('display', 'none');
    );

【问题讨论】:

请向我们提供所需的 html/css/javascript 代码。链接不是很有用,很可能会导致更少的答案,也请检查这两个链接:api.jquery.com/click / api.jquery.com/fadeOut 这不会解决问题。我无法访问该引擎的源文件,这意味着我必须适应其余部分的工作方式。我也有这样的印象,整个篮子被刷新了2次,所以我的代码先执行,然后整个重新下载,除了我的代码。我没有那么先进来捕捉它,所以也许有人会找到 DOMSubtreeModified 以外的方法 【参考方案1】:

你可以试试这样的:

$('input:radio[name="delivery_method"]').change(function()
    if ($(this).is(':checked')) 
        $('#proceedButton').css('display', 'none');
    
);

如果您想对此进行扩展,这篇文章对上述内容进行了非常详细的解释: Jquery If radio button is checked

【讨论】:

感谢您的回复,但是如果您将此代码粘贴到控制台并更改选中的收音机,则此按钮会被隐藏,但之后该按钮会再显示一次。重新加载篮子的内容时会发生这种情况,我不知道如何使此按钮不再出现对我来说是个问题。我不知道 ajax 是在重新加载它还是别的什么...

以上是关于在元素消失/加载完成后做一些事情的主要内容,如果未能解决你的问题,请参考以下文章

python selenium中等待元素出现及等待元素消失操作

谷歌地图 api 长时间加载的 jQuery 移动对话框消失

如何等待元素在柏树中消失?

在 fetch 和 mount 完成后做一些事情

我的 HTML Div 元素在页面加载时立即消失

用JQuery实现页面Loading的效果,即:当页面加载完成前显示Loading的进度条,全部加载完成之后进度条消失