javascript - 弹出窗口完全加载后如何单击按钮

标签 javascript jquery

我想实用地点击一些 html 元素。 我使用 Jquery 选择器来选择一个按钮并单击它。

$('span.firstBtn').click();

单击此按钮后,将显示一个弹出窗口,然后我想单击弹出窗口中的一个按钮。

$('div.BtnOnPopupWindows').click();

但我得到空指针,因为代码运行时没有弹出窗口。所以我需要等到弹出窗口加载完成。我怎样才能做到这一点?如何等到弹出窗口加载完成?

最佳答案

使用 jQuery 的 .on() 方法 delegated event handlers :

// DELEGATED EVENT HANDLERS
// Delegate event for existing or future elements using .on() with delegation:
$(document).on("click", ".BtnOnPopupWindows", function() {
  console.log("BtnOnPopupWindows CLICK");
});

// DIRECT EVENT HANDLERS
// Define button click:
$('.firstBtn').on("click", function() {
  console.log("firstBtn CLICK")
  $('#popup').html(`<div class="BtnOnPopupWindows">TEST</div>`);
});

// Dynamically trigger stuff
$('.firstBtn').click();
$('.BtnOnPopupWindows').click();
<span class="firstBtn">BUTTON</span>
<div id="popup"><!--will be dynamically populated--></div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

提示:不要使用 $(document) 尝试总是委托(delegate)给第一个静态(非动态)元素父元素。对于上面的例子,它会是这样的:

// Static parent - on click - dynamic child
$("#popup").on("click", ".BtnOnPopupWindows", function() {

关于javascript - 弹出窗口完全加载后如何单击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63383119/

相关文章:

javascript - 如何在 turn.js 中禁用剥离(悬停效果)?

javascript - 如何让我的网络浏览器以编程方式说话?

javascript - $(this).toggleClass 和多个 btns 和元素的 jQuery 问题

javascript - AJAX 成功写入文件但文件为空

javascript - 不止一个模态卡在循环中,Bootstrap

javascript - Vue.js - 在 Vuex 模块中获取当前路由

javascript - Highcharts - 柱形图钻取,如何根据某些值更改钻取条颜色

javascript - 如何检测是否启用了 IndexedDB

php - 折线图生成

jquery - 有什么方法可以在 Django 中序列化分页对象吗?