【发布时间】:2018-11-09 23:06:14
【问题描述】:
我有这个 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) + "]";
MonitorAndClick(选择器); }, 500);
关键是这个元素应该在那里,有时它的加载速度不够快,我想有办法检查它是否已加载,然后点击它。
cmets 后更新代码
var selector = "tr[gacategory = '/myprotection/mywills/item_" + parseInt(willId) + "]";
$("#selector").ready(function () {
console.log('**********.... selector is loaded ....*****');
if (!$("#selector").hasClass('selected'))
MonitorAndClick(selector);
});
还是不行。
【问题讨论】:
-
@CertainPerformance 请检查编辑后的代码。谢谢
标签: javascript jquery timeout load setinterval