jQuery选择器是否适用于出现在Javascript代码之后的选择器
Does jQuery selector work on selector that appears after Javascript code?
我有Javascript代码,它应该在点击时做一些事情,但它什么也没做。它本质上是窗格上滑入的按钮。当我点击按钮时,我预计会发生一些事情。但是,此按钮是在 AJAX 调用完成时填充的,因为 AJAX 调用正在获取包含该按钮的某些 HTML。
这是我设置按钮的代码:
$("#btn-delete-setup").on("click", function() {
console.log("clicked");
_deleteFunction();
//return false;
});
由于 Javascript 是在从 AJAX 调用呈现该窗格和按钮之前加载的,这是否意味着该按钮不会响应我的.on("click")
代码?我的按钮没有响应是因为当 Javascript 加载时,它没有找到要绑定到的按钮吗?
所以,你的问题的答案是:不,如果在加载脚本后附加元素(例如在文档就绪时),则此代码将不起作用。
但是你可以用jQuery:)轻松实现这一点:
$(document).on("click","#btn-delete-setup", function() {
console.log("clicked");
_deleteFunction();
//return false;
});
这篇文章中为您提供的完整解决方案(重复):使用加载了 Ajax 内容的 jQuery "click"函数?
但是
,此按钮是在 AJAX 调用完成时填充的
因此,这是事件委派的完美情况,这意味着在加载页面时不可用的元素上绑定事件,因此您需要将事件委托给最近的静态父级:
$("closestStaticparent").on("click", "#btn-delete-setup" function(e){
console.log("clicked");
_deleteFunction();
//return false;
});
$("closestStaticparent")
是页面元素,就像任何div 容器/包装器一样,或者我会说在 ajax 调用之前在 dom 中的元素。
尽管$('body'), $(document) or $(document.body)
始终可用于委派事件。
如果您担心按钮未准备好的可能性,请尝试:
$(document).ready(function(){
$("#btn-delete-setup").on("click", function() {
console.log("clicked");
_deleteFunction();
//return false;
});
});
希望这有帮助,
相关文章:
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 正在搜索JavaScript日期选择器滑块
- 如何通过选择器元素将图像添加到javascript下拉警报消息中
- 单击时选择2(未选中),显示加载微调器javascript
- JavaScript选择器:查找包含具有特定属性的子体的节点
- Javascript-如何使用bootstrap日期时间选择器自动计算两个时间输入之间的差异
- 为现有Roslyn语言lexer/parser选择基于javascript的代码编辑器
- 使用javascript"这个“;用于jquery选择器
- JavaScript类列表选择器错误
- 使用javascript和css选择器获取value属性的内容
- Javascript两个日期选择器冲突
- 日期选择器无法使用javascript显示
- 复制Javascript日期选择器
- 从子窗口到父窗口的Javascript弹出选择器
- 如何检查日期选择器和时间选择器元素是否使用JQuery/Javascript设置
- 当页面回发ASP.NET时,时间选择器javascript将停止工作
- kendo日期选择器javascript文件
- 日期选择器javascript和电子邮件检查ajax java脚本错误
- 时间和日期选择器(Javascript/PHP)
- jquery选择器-JavaScript:querySelectorAll&classList切换未按预期工作