Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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
自定义js文件中的javascript onclick null_Javascript_Html - Fatal编程技术网

自定义js文件中的javascript onclick null

自定义js文件中的javascript onclick null,javascript,html,Javascript,Html,我试图简单地检测单击链接以显示警报框。无论何时我将脚本放在php文件中,我的a链接所在的位置,它都可以正常工作,但无论何时我将脚本放在自定义JS文件中,它都不会检测到它,并且我会收到错误“uncaughtTypeError:cannotsetproperty”onclick“of null” php页面和定制js页面之间的链接确实有效,因为我在页面上有以前的工作代码。它只是在外部脚本中检测不到我的链接 HTML 更新-忘记提及对不起,我的a链接嵌套在名为“ConfirmHoliday”的div中

我试图简单地检测单击链接以显示警报框。无论何时我将脚本放在php文件中,我的a链接所在的位置,它都可以正常工作,但无论何时我将脚本放在自定义JS文件中,它都不会检测到它,并且我会收到错误“uncaughtTypeError:cannotsetproperty”onclick“of null”

php页面和定制js页面之间的链接确实有效,因为我在页面上有以前的工作代码。它只是在外部脚本中检测不到我的链接

HTML

更新-忘记提及对不起,我的a链接嵌套在名为“ConfirmHoliday”的div中


我的自定义JS中有JS代码操作ConfirmHoliday div,因此它不能在之后加载,因为它现在发现它的父div非常好。

javascript文件在创建元素之前运行,因此它不存在。要解决此问题,您有两个选项:

1) 用
窗口环绕代码。onload
功能

window.onload = function () {
    // Your code here
};
2) 将它放在一个单独的js文件中,并向脚本标记添加一个defer属性

<script src="yourScript.js" defer="defer"></script>


3) 将脚本标记放在锚标记之后,javascript文件在创建元素之前运行,因此它不存在。要解决此问题,您有两个选项:

1) 用
窗口环绕代码。onload
功能

window.onload = function () {
    // Your code here
};
2) 将它放在一个单独的js文件中,并向脚本标记添加一个defer属性

<script src="yourScript.js" defer="defer"></script>


3) 将脚本标记放在锚点标记之后

它试图在ConfirmHolidayClose元素存在之前访问它,可能吗?你的JS在你的页面中加载到哪里?我在猜你的

一些解决方案:

1) 将脚本移动到页面底部,就在

2) 将JS封装在dom就绪函数中,这确保在dom树存在之前不会运行JS。使用jQuery最简单,下面的示例

jQuery示例

$(function() {

    document.getElementById("ConfirmHolidayClose").onclick=function(){
        alert("Working");
    }

});
document.addEventListener("DOMContentLoaded", function() {

  document.getElementById("ConfirmHolidayClose").onclick=function(){
        alert("Working");
    }

});
普通示例

$(function() {

    document.getElementById("ConfirmHolidayClose").onclick=function(){
        alert("Working");
    }

});
document.addEventListener("DOMContentLoaded", function() {

  document.getElementById("ConfirmHolidayClose").onclick=function(){
        alert("Working");
    }

});

它试图在ConfirmHolidayClose元素存在之前访问它可能?你的JS在你的页面中加载到哪里?我在猜你的

一些解决方案:

1) 将脚本移动到页面底部,就在

2) 将JS封装在dom就绪函数中,这确保在dom树存在之前不会运行JS。使用jQuery最简单,下面的示例

jQuery示例

$(function() {

    document.getElementById("ConfirmHolidayClose").onclick=function(){
        alert("Working");
    }

});
document.addEventListener("DOMContentLoaded", function() {

  document.getElementById("ConfirmHolidayClose").onclick=function(){
        alert("Working");
    }

});
普通示例

$(function() {

    document.getElementById("ConfirmHolidayClose").onclick=function(){
        alert("Working");
    }

});
document.addEventListener("DOMContentLoaded", function() {

  document.getElementById("ConfirmHolidayClose").onclick=function(){
        alert("Working");
    }

});

您是否在元素之前加载js?它试图在ConfirmHolidayClose元素存在之前访问它?你的JS在你的页面中加载到哪里?我猜你应该在window.onload函数中编写脚本。请显示你的HTML标题。特别是如何包含javascript代码。是否在元素之前加载js?它试图在ConfirmHolidayClose元素存在之前访问它?你的JS在你的页面中加载到哪里?我猜你应该在window.onload函数中编写脚本。请显示你的HTML标题。特别是如何包含javascript代码。不应使用大写的html标记。这与XHTMLYou不应该使用大写的html标记是背道而驰的。这是针对XHTMLwindow的。onload是不正确的-这将等待整个页面加载完毕,我们只想等待DOM加载load@Zinc他目前用锚定标记封装了一个图像,如果图像没有加载,那么你就不能点击它在这种情况下,好的观点-但这是一个单独的问题,如果他设置了图像尺寸(他应该这样做)那么这不是问题,因为占位符将存在于DOM中。@嗯,1)我们试图解决他当前的问题,在这个问题中,使用DOM加载事件是没有用的,2)如果他设置了尺寸(他应该如你所说的那样),图像仍然需要加载。我不知道你的情况,但我从来没有开始点击网页上的随机空白点,因为那里可能有一个带有onclick函数的图像。window.onload不正确-这将等待整个页面加载完毕,我们只想等待DOM加载load@Zinc他目前用锚定标签封装了一个图像,如果图像未加载,则您不能单击它在本例中,这是一个好的观点-但这是一个单独的问题,如果他设置图像维度(他应该设置),则这不是问题,因为占位符将存在于DOM中。@好吧,1)我们正试图解决他当前的问题,在这个问题中,使用DOM加载事件是没有用的,2)如果他设置了尺寸(他应该像你说的那样),图像仍然需要加载。我不知道你的情况,但我从来没有开始点击网页上的随机空白点,因为那里可能有一张带有onclick功能的图片。