Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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函数_Javascript_Spring_Thymeleaf - Fatal编程技术网

动态加载后未调用Javascript函数

动态加载后未调用Javascript函数,javascript,spring,thymeleaf,Javascript,Spring,Thymeleaf,我有一个奇怪的问题,我希望有人能帮我解决 问题 当我通过.load()函数动态加载html时,如果加载的片段中的html的任何方面试图访问原始html页面中的javascript查询函数,那么它将不起作用。示例代码如下: HTML主页(Main.HTML) 下面是一系列行动: -Main.html页面加载 -用户单击加载片段超链接 -Javascript将相关片段动态加载到div中 -用户点击检查此超链接,什么都没有发生 我有什么遗漏或需要注意的吗 就好像Thymeleaf已经预先注册了所有可能

我有一个奇怪的问题,我希望有人能帮我解决

问题

当我通过.load()函数动态加载html时,如果加载的片段中的html的任何方面试图访问原始html页面中的javascript查询函数,那么它将不起作用。示例代码如下:

HTML主页(Main.HTML)

下面是一系列行动:

-Main.html页面加载

-用户单击加载片段超链接

-Javascript将相关片段动态加载到div中

-用户点击检查此超链接,什么都没有发生

我有什么遗漏或需要注意的吗

就好像Thymeleaf已经预先注册了所有可能的事件场景,不允许任何其他场景。 我能够让它工作的唯一方法是在片段中注入“checkvalue”javascript,正如您所同意的,这是一种糟糕的做法


非常感谢您的帮助。

您正在使用
checkvalue
类将单击事件侦听器应用于所有现有对象

$(".checkvalue").click(function () 
您更希望做的(使单击事件动态应用于所有现有和任何新添加的)是在dom树中的父级上设置一个事件(现有和所有将添加的父级)。
在您的情况下,
body
标签可能是安全的赌注

以下内容应足够:

$('body').on('click', '.checkvalue', function() { ...
简单地说,代码将在
body
元素而不是
.checkvalue
对象上应用侦听器,并且每当单击带有
.checkvalue
类的对象时(无论是动态加载还是静态加载),事件都将触发


编辑
我还建议您在javascript中,在确定jquery已加载之前不要使用它。
jquery库可以使用以下函数为您解决此问题:

$( document ).ready(function() {
  // All jquery dependant code here.
});

片段是异步加载的吗?太棒了。我会给你买啤酒,因为这让我头疼(我在非常长时间的缺席后才回到javascript)。简单但非常重要的提示。谢谢你@Jite。
$(".checkvalue").click(function () 
$('body').on('click', '.checkvalue', function() { ...
$( document ).ready(function() {
  // All jquery dependant code here.
});