2011-05-12 61 views
0

我在外部文件中编写了一些jQuery代码,目标是在包含脚本的页面中匹配每个<select>标记。在不调用显式函数的情况下执行外部jQuery代码

我的目标是在目标页面的<head>标记中包含脚本引用,并“运行”jQuery代码,而无需调用任何函数。

我已经看到几个外部jQuery代码的例子,但都调用一个函数来执行(外部)代码。

如果我使用“普通”JavaScript,就像简单的警报一样,它们的执行没有问题。当我尝试使用我的jQuery代码时,没有任何反应。

这里是我的外部jQuery的文件:

$(function() {  
    $("select").focus(function() { 
     alert('selected...'); 
    }).change(function() { 
     alert('changed...'); 
    }) 
}); 

即使我不使用$(function()一开始我总是得到的异常“预期目标”在$第一次出现,而即使在离开$(function()和在括号内有一个简单的警报。

如何开发外部文件?

我在测试页面内联测试了外部脚本,它工作正常。

回答

0

这没有什么区别其中你的代码编写,在HTML页面内联,或通过<script src='...'>包括在内。

然后,问题就出现在您的代码执行时尚未包含jQuery。看看你包括你的文件的顺序,并确保jQuery在这个依赖于它的代码之前。

+0

感谢nickf的建议。在MasterPage中,jQuery库包含在标记中。在执行外部代码之前,如何确保它包含在正确的时间? – Francesco 2011-05-13 16:39:03

+0

@Luca:把它放在包含jQuery的脚本标签之后。 – nickf 2011-05-15 19:07:54

-1

试试这个:

$(document).ready(function() {  
    $("select").focus(function() { 
     alert('selected...'); 
    }).change(function() { 
     alert('changed...'); 
    }) 
}); 
+0

,它的功能相当于什么,他已经拥有了 – nickf 2011-05-12 16:22:47

0

在加载jQuery之前,您可能正在执行jQuery代码。在这种情况下,调用docready($(function(){}))会失败,因为$!== jQuery呢。平时要完成这样的事情,我会把一些代码对我的文件类似的底部:

$(function(){ 
    var t = "external_file.js", 
     s = document.createElement("script"), 
     h = document.getElementsByTagName("head"); 

    s.src = t; 
    s.type = "text/javascript" 
    h.appendChild(s); 
}) 
相关问题