加载 js 元素时执行某些操作,不起作用



我有这个Jquery函数,可以在元素准备就绪时单击它。 它是一个间隔,以下函数:

MonitorAndClick(selector) {
var ele = $(selector);
if (ele.length == 0) {
var intervalid = setInterval(function () {
var ele = $(selector);
if (ele.length > 0) {
ele[0].click();
clearInterval(intervalid);
return true;
}
}, 500);
} else {
ele[0].click();
return true;
}
}

问题是在某些情况下,它不起作用。 然而这是一个间隔,它每 0.5 秒检查一次元素是否准备就绪,那么这怎么可能呢? 有没有其他方法可以检查元素是否已准备就绪?

附加说明:

我有手风琴。我有一个打开手风琴的功能 ->打开其中一个项目->打开选项卡页面的详细信息部分

这是函数:

//--reach to this point, open accordion index 2--------
ShowAccordion(2);
//----open the item with specific Id in accordion items------
setTimeout(function () {
var selector = "tr[gacategory = '/myprotection/mywills/item_" + parseInt(willId) + "]";

监控和点击(选择器(; }, 500(;

关键是这个元素应该在那里,有时它的加载速度不够快,我想有一种方法来检查它是否加载,然后单击它。

注释后更新的代码

var selector = "tr[gacategory = '/myprotection/mywills/item_" + parseInt(willId) + "]";
$("#selector").ready(function () {
console.log('**********.... selector is loaded ....*****');
if (!$("#selector").hasClass('selected')) 
MonitorAndClick(selector);
});

仍然不工作。

为什么要依靠 0.5 秒的延迟来确保元素存在于 DOM 中。只有在元素存在于 DOM 中后,才应调用此函数。如果在将此元素添加到 DOM 时有另一个条件驱动,则在达到该条件后调用此函数。

你可能想试试 https://api.jquery.com/ready/

似乎jquery就绪函数也可以应用于单个元素

相关内容

  • 没有找到相关文章

最新更新