没有警报,外部jquery文件中的代码不会被触发

时间:2012-07-23 07:38:16

标签: jquery asp.net

我有一个外部js文件,需要在单击某个元素时触发。此代码位于就绪函数内。当我在ready函数中有一个alert语句时,一切正常。但是当我删除警报时, 准备好的功能没有被调用。可能是这种奇怪行为的原因是什么?

alert()
    $(".monthChanger span").click(function (event) {
            event.stopPropagation();
            $(".monthChanger span ul").show();
        });

没有此警报调用,上述代码不会被触发。此代码位于ready()函数

1 个答案:

答案 0 :(得分:0)

我认为问题是在加载“.monthChanger span”之前加载并执行了外部文件。 jQuery中的触发器仅适用于加载触发器时已存在的元素(至少是您正在使用的那些触发器,还有其他jQuery函数(.live)在选择器的代码之后不需要加载准备好了,为了工作)。

要解决这个问题,你可以依赖“.live”jQuery函数,为外部文件尝试$(document).ready()(不过我不确定是否可以使用)或者只是确保javascript文件的加载时间晚于它所依赖的元素(只需在下面放置所需的元素。