Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将javascript添加到html文档的头部,以侦听对尚未添加到DOM中的元素的单击?_Javascript_Jquery_Html_Dom - Fatal编程技术网

如何将javascript添加到html文档的头部,以侦听对尚未添加到DOM中的元素的单击?

如何将javascript添加到html文档的头部,以侦听对尚未添加到DOM中的元素的单击?,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我正在使用第三方web应用程序,它允许您将自己的代码放在HTML页面的头部。文档的其余部分是自动生成的,因此在将所有内容添加到DOM之前,我只能在头部插入自定义代码 我试图将单击事件添加到将加载到DOM中的各种按钮中。我希望根据单击的按钮id调整浏览器窗口的大小 我试过这样的方法: <script type="text/javascript"> window.onLoad=function(){ document.getElementById("resize").on

我正在使用第三方web应用程序,它允许您将自己的代码放在HTML页面的头部。文档的其余部分是自动生成的,因此在将所有内容添加到DOM之前,我只能在头部插入自定义代码

我试图将单击事件添加到将加载到DOM中的各种按钮中。我希望根据单击的按钮id调整浏览器窗口的大小

我试过这样的方法:

    <script type="text/javascript">
window.onLoad=function(){
    document.getElementById("resize").onClick = window.resizeTo(250, 250);
    };
</script>

window.onLoad=function(){
document.getElementById(“resize”).onClick=window.resizeTo(250250);
};
因为我希望如果我使用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>

$(文档)。单击(函数(){
如果(event.target.id=='resize'){
窗口。resizeTo(250250);
};
};
真正的答案可能只是不可能,但我希望有一些解决方案,我只是无法在网上找到

总之,有没有一种方法可以根据在第三方web应用程序中单击的元素的id来调整浏览器窗口的大小?在将元素添加到DOM之前,脚本必须位于文档的头部


感谢您的帮助。

使用jQuery,您可以进行委派活动

$(document).on("click", "<selector>", function(){}));
$(document).on(“click”,“”,function(){});
这也适用于动态创建的对象

相对于

$("<selector>").on("click", fucntion(){});
$(“”)。单击(“click”,function(){});

它只适用于原始DOM元素。

使用jQuery,您可以拥有委派事件

$(document).on("click", "<selector>", function(){}));
$(document).on(“click”,“”,function(){});
这也适用于动态创建的对象

相对于

$("<selector>").on("click", fucntion(){});
$(“”)。单击(“click”,function(){});

它只适用于原始DOM元素。

您可以将代码放入
文档中。准备好
并将其委托给将来可能添加的元素。有关更多详细信息,请参阅

 $(document).on("click", "selector of element added in future", function(){

 //execute your code
 });

您可以将代码放入
document.ready
中,并将其委托给将来可能添加的元素。有关更多详细信息,请参阅

 $(document).on("click", "selector of element added in future", function(){

 //execute your code
 });

试着把它加入身体而不是头部。@TylerH,这是他不能做的。这就是问题所在……是否使用ajax或其他方式加载了
#resize
。文档的其余部分是自动生成的。他们只允许您将自定义代码放在头部。我正在使用resizeTo(),这是一个javascript函数。尝试将其添加到身体而不是头部。@TylerH这是他不能做的。这就是问题所在……是否使用ajax或其他方式加载了
#resize
。文档的其余部分是自动生成的。他们只允许您在头部放置自定义代码。我使用的是resizeTo(),这是一个javascript函数。我认为我们不能使用速记
单击
,这样
“选择器”
将成为事件数据。我们必须像这样在上使用
。在('click','selector',function(){})
上,我认为我们不能使用速记
单击
来委派事件,这样
“selector”
将成为事件数据。我们必须像这样在上使用
。在('click','selector',function(){})
上这是非常好的,它工作得很好,但是函数会在页面加载时立即执行,而不是在单击时执行。我添加了它,就像添加了so$(document)一样@亚当,你需要用匿名函数包装它,重读这个答案。顺便说一句,你真的有
resize
类型的元素吗。我总是怀念那样的小事。我还在学习javascript。“resize”只是我使用的测试页面的一个虚拟选择器。这很好,它工作正常,但是该函数在页面加载时立即执行,而不是在单击时执行。我添加了它,就像添加了so$(document)一样@亚当,你需要用匿名函数包装它,重读这个答案。顺便说一句,你真的有
resize
类型的元素吗。我总是怀念那样的小事。我还在学习javascript。“resize”只是我使用的测试页面的虚拟选择器。