javascript - JQuery点击功能第一次不工作 - 需要2次点击才能正常工作
问题描述
这是我在 Stack Overflow 上的第一个问题,所以我希望我能得到一个好的答复!
基本上,我目前正在学习 Javascript 中的绳索,并且我刚刚开始学习 JQuery,我决定添加一些 JQuery 代码以使取消按钮周围的 div 框在单击后消失。我已经成功/成功地做到了这一点,但是它在第一次点击时没有响应。
谷歌搜索后,我认为这是因为代码第一次只激活了要使用的点击事件。我花了几个小时摆弄并试图找到正确的修正案,但到目前为止还没有运气。
希望有人可以提供帮助!
创建取消按钮的 Javascript:
var cancel = document.createElement("button");
var canceltext = document.createTextNode("Cancel")
activetradediv.appendChild(cancel);
cancel.appendChild(canceltext);
cancel.setAttribute("class","activetradecancel")
cancel.setAttribute("onclick","cancelactivetrade()")
JQuery 操作取消按钮
function cancelactivetrade (){
if (window.confirm("Are you sure you want to cancel this trade? \nClick 'Okay' to confirm"))
{$('.activetradecancel').on('click', function() {
$(this).parent('.activetradediv').remove();
});};}
解决方案
好吧,这是我的第一个答案,所以我希望我能提供帮助!
您的代码行为如下:第一次单击取消按钮调用cancelactivetrade()
调用确认弹出窗口。如果在弹出窗口中单击“确定”,则设置第二个单击事件侦听器。但是您必须再次单击才能触发删除 div 的新单击事件侦听器。
我会建议这样的东西:
$('.activetradecancel').on('click', function() {
if (window.confirm("Are you sure you want to cancel this trade? \nClick 'Okay' to confirm"))
{
$(this).parent('.activetradediv').remove();
}
});
而且您还cancel.setAttribute("onclick","cancelactivetrade()")
从您的 javascript 中删除了第一个事件侦听器,因为.on()会自行处理事件侦听器。
推荐阅读
- javascript - 本次交易有效吗?
- cython - Cython 外部 C++ 函数
- javascript - 儿童的 jQuery 选择器
- java - 使用@Retryable 打印重试次数
- c# - 如何为位置记录定义额外的初始化逻辑?
- python - 从数据库调用数据而不使用 for 循环
- python - 不使用 OpenCV 的阈值
- flutter - Flutter better_player 在 Google PlayStore 中不起作用
- azure - 通过 Microsoft Graph 和 App Credentials 添加来宾邀请给 Method Not Found
- google-cloud-firestore - 在数据存储模式下使用 UUID 作为 Google Cloud Firestore 中的键是否安全?