在Javascript代码中我有这个字符串:
$('.promo_menu:nth-child(1)').click();
$('.avatar_0').click();
问题是数据行应模拟某些光束的2次点击。但没有点击。
我试着写这样的东西:
$('.promo_menu:nth-child(1)').trigger('click');
$('.avatar_0').trigger('click');
但结果没有改变,点击不起作用。
但是在页面完全加载后我将在控制台中编写代码:
$('.promo_menu:nth-child(1)').trigger('click');
$('.avatar_0').trigger('click');
点击了所有内容。 我尝试使用此代码来运行$(document).ready(){};
$(document).ready(function(){
$('.promo_menu:nth-child(1)').click();
$('.avatar_0').click();
});
没有结果...... 怎么能解决这种情况?我在加载页面时需要点击2次。
答案 0 :(得分:0)
所以,如果我理解正确,这两次点击应该仅在页面加载时发生,对吗?如果是这样,你可以尝试直接调用事件处理函数吗?
$(function () {
$('.promo_menu').on('click', promoMenuClickHandler);
$('.avatar_0').on('click', avatarClickHandler);
// call handler, preserving 'this' context
promoMenuClickHandler.call($('.promo_menu:nth-child(1)')[0]);
avatarClickHandler.call($('.avatar_0')[0]);
function promoMenuClickHandler() {
// ...
}
function avatarClickHandler() {
// ...
}
});
(注意:上面的代码只是qeustion中提供的大致两行代码的示例。)
话虽如此,你的.trigger
尝试也没有理由不起作用。你确定代码正在执行吗?您确定在绑定点击处理程序后触发了这些点击吗?
答案 1 :(得分:0)
如果您在加载页面后立即运行这些功能,$(document).ready()
将是不够的。文档准备就绪后,必须在加载元素后绑定事件。因此,要确保元素已加载使用$(window).load()
示例:
$(document).ready(function()
{
$(window).load(function()
{
$('.promo_menu:nth-child(1)').click();
$('.avatar_0').click();
});
});