如何将javascript添加到html文档的头部以侦听尚未添加到DOM的元素的单击?
How can I add javascript to the head of an html document to listen for a click on an element not yet added to the DOM?
我使用的是一个第三方web应用程序,它允许你将自己的代码放在HTML页面的头部。文档的其余部分是自动生成的,所以我唯一可以插入自定义代码的地方是在将所有内容添加到DOM之前的头部。
我试图添加单击事件到将在DOM中加载的各种按钮。我希望浏览器窗口根据点击按钮的id来调整大小。
我试过这样做:
<script type="text/javascript">
window.onLoad=function(){
document.getElementById("resize").onClick = window.resizeTo(250, 250);
};
</script>
因为我希望,如果我使用onLoad事件添加一个onClick事件,它将等待,直到一切加载,我不会得到一个空引用错误。我没有得到一个空引用错误,但onClick不工作。
我也尝试使用jQuery,因为我读的一篇文章建议监听所有的点击事件,然后检查触发事件的元素的id,但我不确定我是否正确使用它。这是我第一次使用jQuery。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).click(function() {
if(event.target.id == 'resize') {
window.resizeTo(250,250);
};
};
</script>
真正的答案可能只是这是不可能的,但我希望有一些解决方案,我只是没能在网上找到。
总而言之,有没有一种方法可以根据第三方web应用程序中点击的元素的id来调整浏览器窗口的大小?该脚本必须在元素添加到DOM之前位于文档的头部。
谢谢你的帮助。
您可以将代码放在document.ready
中,并将其委托给将来可能添加的元素。详见http://api.jquery.com/on/
$(document).on("click", "selector of element added in future", function(){
//execute your code
});
使用jQuery你可以有一个委托事件
$(document).on("click", "<selector>", function(){}));
也适用于动态创建的对象。
与
相对$("<selector>").on("click", fucntion(){});
相关文章:
- 如何判断何时将dom节点添加到文档中
- 向动态生成的DOM添加Angular自定义指令
- 如果移除并重新添加DOM元素,则ng单击绑定丢失
- 使用 Knockout 动态添加 dom 元素
- jquery使用$.on来添加dom元素
- 如何在 HTML 结构中添加 DOM 模型
- 如何强制.prepend()和.append()添加DOM对象,而不是文本
- AngularJS添加DOM元素
- 添加DOM视图太慢了,需要一种更好的方法来缓存一次视图并重用它供以后使用
- 带有模板的Dojo小部件,在小部件加载时更改模板(添加DOM元素)
- 添加 DOM 元素,什么是正确的方法
- 如何在画布上添加DOM对象
- 如何在每次迭代中添加DOM对象
- jQuery show()不是一个函数-用于添加DOM元素
- 只能添加dom元素,但不能删除它们
- 在单击按钮时动态添加DOM元素
- 添加 DOM 元素时获取通知
- 如何在React中添加dom
- 如何在Div背景中添加DOM图像对象
- 如何在按钮中添加DOM附加的功能