所以这与我在这个主题上发现的所有帖子略有不同。我有一个通过Jquery动态加载的按钮,我保存了这个按钮的选择器,稍后在我的代码中我需要发送一个click事件(模仿某人点击按钮)现在通常我会使用$('#myID').click();
这点击了一下。但由于我的按钮是动态加载的,因此不起作用。现在我不需要处理onclick事件。我可以用
$(document).on('click', '#myId',function(e){});
为此。我需要实际发送click事件。我试过了
.click();
.on('click);
.onClick();
.trigger('click');
有什么想法吗?
答案 0 :(得分:0)
通过使用setTimeout()
一次又一次地调用该函数,您实际上是在轮询该元素,直到它实际存在,即当您触发click事件时。
// Wait for everything in the document to be loaded
jQuery(document).ready(function() {
// Make the initial call to the function
fire_click('#myID');
// This function tries to find the button, and if it can't
// find it, it calls itself again in 50 ms.
function fire_click(selector) {
elem = jQuery(selector);
if (elem.length == 0)
setTimeout(fire_click, 50);
else
elem.click();
}
});
更好的解决方案是在加载按钮时触发一个回调函数。然后,此回调函数可以触发按钮上的click事件,因为只有当按钮实际存在时才会调用回调函数。一般情况下,尽可能避免轮询信息,因此这将被视为更好的解决方案。
答案 1 :(得分:0)
如果单击按钮进入函数,如果它非常简单,而不是尝试触发单击事件,只需触发按钮正常触发的函数,您也可以分解您想要发生的代码。 / p>