Javascript / JQuery代码是否需要低于其他HTML代码?

时间:2014-07-17 20:26:23

标签: javascript jquery

我有这个JQuery代码和JS代码下面的链接。如果链接在JS代码下面,它似乎不起作用,但如果JS代码在链接之下,它就可以工作。

如何使用链接上方的JS代码?我需要这样做,因为我在使用PHP包含的文件中包含JS代码。

<div id="EditPage" class="EditPagePopup">
<iframe id="EditPageFrame" width="100%" height="80%" src=""></iframe>
<a id="JQueryClose">&#215;</a>
</div>
<script>
$("a#EditPageLink").click(function (e) {
    alert("f");
    e.preventDefault();
    $("#EditPageFrame").attr("src", $(this).attr("value"));
    $("a").removeClass("active");
    $(this).addClass("active");

    JQueryPopup('#EditPage');
});
</script>

<a id="`EditPageLink`" href="#" value="editcustomer.php?seq='.$customer["sequence"].'"

3 个答案:

答案 0 :(得分:3)

它不是必须的,但建议使用它。阅读this previously asked question

你应该做的是使用jQuery&#39; ready function来确保在附加事件之前DOM已经完成加载。例如:

$(function() {
    $("a#EditPageLink").click(function (e) {
        alert("f");
        e.preventDefault();
        $("#EditPageFrame").attr("src", $(this).attr("value"));
        $("a").removeClass("active");
        $(this).addClass("active");

        JQueryPopup('#EditPage');
    });
});

这样做会正确附加事件,无论脚本标记出现在html中。

答案 1 :(得分:0)

当代码高于html时,它可能会在DOM完全加载之前执行。建议将依赖于DOM的javascript放在页面底部以避免此问题。

答案 2 :(得分:0)

将脚本一直放到底层已经成为惯例,因为浏览器可以渲染页面并最后加载和运行脚本。

它曾经是head标签内的所有脚本。但实际上你可以将脚本放在任何地方,将所有内容放在一个地方(顶部或底部)使你的标记可读和可维护。