JS脚本只有在嵌入到scala / html代码中时才有效
JS script works only when embedded in scala/html code
我在模板的scala.html文件中有一个这样的div(我正在使用PlayFramework):
<div id="box">Text in the box</div>
和这个咖啡脚本:
$("#box").on "click", ->
$("#box").fadeOut()
它不起作用:如果我单击div #box 什么也没发生。我正在尝试使用普通的jquery来了解这是否是咖啡问题。然后我把同样的jQuery脚本放在<head>
<script>
$("#box").on("click", function() {
return $("#box").fadeOut();
});
</script>
并且不再工作,但是如果我将其放入 scala.html 文件(包含div #box)中,它可以工作!错误在哪里?
div#box 通过单击按钮加载 Ajax 调用,然后在加载之前不存在。是问题所在吗?
是的,这会导致它。而且,委托绑定通常是解决方案。
这是因为jQuery只能将事件绑定到当时存在的元素。但是,由于几乎所有的事件都通过target
的.parents()
冒泡/传播,现有的父代可以用来表示预期的后代。
$(document).on 'click', '#box', ->
# ...
在这种情况下,document
是现有的父级,允许#box
在 DOM 中存在之前为其创建click
绑定。
否则,事件的绑定可能会延迟到元素存在。这就是您问题的最后一部分发生的情况,因为<script>
与<div>
一起插入 DOM 中。
相关文章:
- 创建一个循环来简化HTML和CSS代码
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- 如何解析结构不良的 html 代码
- HTML标记,包含带引号的JavaScript代码中的引号
- 我的html表单无法验证.请参阅代码片段中的html代码和java脚本
- HTML 标记未在 AngularJS ckEditor 中应用,而是在 Ediator 中显示 HTML 元素标记代码
- 如何在html中将字符串转换为数字?以及如何将变量传递到scriptlet代码中
- 将第一个字母大写并去掉html代码
- 我在下拉列表中尝试了下一个和前五年的html代码.接下来的5年我都过得很好.我怎样才能拿到之前的5年
- 使用.format在一些HTML代码中插入文本,会出现错误(Python)
- html代码没有在记事本++上运行
- 来自mysql的动态值用于html代码点火器视图中的图形
- 如何:编写漂亮的HTML代码和Javascript控制台
- 在html标记中序列化javascript代码
- 我需要java代码来打开html代码onclick事件
- html代码需要可点击的文本按钮
- 无法使用我的代码(html/js/css)初始化网络摄像头
- 如何编辑此代码HTML/CSS以使'选择'JS代码也复制2剪贴板
- 如何使用js来反转义代码html
- 如何在 ATTR 标题中显示代码 HTML