如果很快导入Jquery函数没有结果?

时间:2013-09-08 15:58:48

标签: jquery

我使用Jquery创建了一个简单的函数,它可以工作,但是如果我很快将它导入它就不起作用,例如

<html land="en">
<head>
    <meta carset="utf-8">
    <title> Jquery 2 </title>
</head>

<body>
<!-- Inline is JS in the HTML file -->
<p id="paragraph"> This is a paragraph </p>
<script src="jquery-1.10.2.min.js"></script>
<script src="Tutorial2.js"></script>

</body>
</html>

这样可行,但如果我这样做了

<html land="en">
<head>
    <meta carset="utf-8">
    <script src="jquery-1.10.2.min.js"></script>
    <script src="Tutorial2.js"></script>
    <title> Jquery 2 </title>
</head>

<body>
<!-- Inline is JS in the HTML file -->
<p id="paragraph"> This is a paragraph </p>

</body>
</html>

这不起作用。

是因为我在Tutorial2.js中的函数使用了对p id =“paragraph”的引用,并且在页面之前加载了Javascript文件,该函数不知道我要告诉它访问什么。我的假设是否正确?

2 个答案:

答案 0 :(得分:1)

是的,这就是原因:当您将事件处理程序绑定到元素时,此元素必须存在。

通常的解决方案是使用$.ready function,它只在DOM准备就绪后才执行回调:

$(function(){
   // your code using the DOM
});

然后你可以把你的代码放在HEAD中。

另一种解决方案,但成本更高,就是在绑定时使用委托:

$(document.body).on('event', 'yourselector'), function(){
      //
});

答案 1 :(得分:0)

$(document).ready

这就是你所需要的。