2011-05-21 49 views
5

我是jQuery的新手,并且陷入了一些奇怪的问题。我正在使用jQuery的changeclick方法。在我的HTML文件中使用<script>标记时,它们工作正常。jQuery不能在外部JavaScript中工作

像:

<script> 
    $("select,input").change(function() 
    { 
     // My code and some alerts 
    }); 
</script> 

当我复制在外部JavaScript代码相同的无<script>和进口,在我的HTML它是不是在所有的工作。

是否需要在外部JavaScript代码中使用jQuery进行任何更改?

PS:在HTML中成功调用了一些其他非jQuery函数,它们存在于相同的外部JavaScript代码中。

+0

你如何将外部js链接到页面? – Oded 2011-05-21 05:30:27

+0

使用'' – xyz 2011-05-21 05:33:17

回答

12

首先,你不想要一个< script>标记在外部JavaScript文件,如果是我是如何阅读你的文章。

jQuery的诀窍是你的代码被设置为立即执行。

你想的那么它加载时的文件已准备就绪,在像包裹你的脚本:

$(document).ready(function(){ 
    $("select,input").change(function() 
    { 
     // My code and some alerts 
    }) 
}); 

你要确保你的文件的jQuery后加载(否则$全球不会被设置)。


加法:

这是你的HTML应该是什么样子:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
<script type="text/javascript" src="jscript/myExternalJs.js"></script> 

这里是你的JavaScript代码应该是什么样子(注意,是JavaScript文件中没有脚本标记) :

$(document).ready(function(){ 
    $("select,input").change(function() 
    { 
     // My code and some alerts 
    }) 
    // Other event handlers. 
}); 

至于你的其他脚本......它的种类取决于你在做什么。最重要的是不要尝试将事件监听器挂到尚不存在的对象上,这就是我们使用document.ready的原因。

+0

是的我想从HTML文件中移除'

3

你确定jquery是在你自己的jQuery代码之前定义的吗?

你也应该确保使用jQuery打交道时DOM就绪:

$(document).ready(function() { 
    $("select,input").change(function() { 
     // my code and some alerts 
    }); 

    // more code here if needed, etc. 
}); 
+0

我刚刚复制了与我的HTML文件中存在的代码相同的代码给外部js.And可以请告诉我如何定义jQuery外部js? – xyz 2011-05-21 05:35:02

+0

@Ajinkya你不必在外部JS中定义,而只需将jquery。*。js链接到你的HTML。它会自动合并。 – 2011-05-21 06:04:32

+0

不要在你的外部JS中定义它,把jquery的

  • 11. jquery javascript不能在codeigniter中工作
  • 12. Javascript函数不能在jquery中工作
  • 13. jQuery和JavaScript不能在MultiView中工作
  • 14. 在外部jquery文件中的功能不工作
  • 15. jquery库不能在外部php文件中工作
  • 16. jquery不能在外部文件中工作
  • 17. JQuery键入事件不能在外部js文件中工作
  • 18. javascript/jquery不能在局部视图中工作。
  • 19. font-face不能在外部工作
  • 20. 由javascript加载的外部JavaScript有时不工作在IE中
  • 21. JQuery不能在JSP页面中工作,但JavaScript工作正常
  • 22. 外部Jquery文件正在工作,但JQuery功能不起作用
  • 23. 调用JavaScript外部不工作
  • 24. HTML链接不工作外部JavaScript
  • 25. 外部链接不工作javascript
  • 26. 外部JavaScript验证工作不
  • 27. 外部不在R工作
  • 28. jQuery脚本在HTML中但不在外部文件中工作
  • 29. jQuery的不工作的外部域
  • 30. 外部动画jquery不工作 - php