JQuery - 为什么现场工作,但点击不?

时间:2010-11-30 16:17:26

标签: jquery

我们有一个具有以下结构的页面:

<script type="text/javascript" src="/js/lots.of.javascript.js"></script>
<jsp:include page="html.jsp"/>

JavaScript有很多$(function(){...}块。在一个区块中,我们尝试了$("#mylink").click(...),但这不起作用。但是相应的.live('click' DID工作。为什么是这样?


更新:更具体地说,我假设在链接添加到DOM之后,click和live语句正在运行,因为链接包含在html.jsp文件中并且语句在$(function(){...}阻止......所以考虑到这一点,我不确定为什么点击不起作用......

4 个答案:

答案 0 :(得分:2)

看不到代码,显而易见的原因是在定义事件后创建了元素。这是使用.live()的主要原因。

答案 1 :(得分:0)

没有看到更多的代码,没有办法确定,但我知道发生这种情况的唯一方法是,如果您的控件(在这种情况下 - 具有id =“mylink”的项目)在页面之后创建加载。

答案 2 :(得分:0)

我猜想在加载页面后该元素已添加到DOM中。 .live方法确保后面添加的元素将获得正确的事件处理程序。

答案 3 :(得分:0)

可能是ID #mylink的元素是在以后创建的,而不是在DOM准备就绪时。