[英]jquery method in another file not found
我有一个文件“ Site.js”,使用以下方法:
function Init() {
$(document).ready(function() {
//some init actions here
});
}
function jQuery.fn.DivToggle(div) {
$(div).toggle('fast');
//some other animation code here
}
在我的Index.cshtml文件中(我正在使用asp.net mvc),我有以下内容:
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/Site.js")" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
$(function () {
Init();
});
</script>
</body>
</html>
运行项目时收到此错误:“ Microsoft JScript运行时错误:'Init'未定义”
知道我在做什么错吗?
未定义Init
因为Site.js
存在语法错误。
function jQuery.fn.DivToggle(div) {
$(div).toggle('fast');
//some other animation code here
}
您实际上无法做到这一点。 它应该是:
jQuery.fn.DivToggle = function(div) {
$(div).toggle('fast');
//some other animation code here
};
PS $(function(){
与$(document).ready(function(){
$(function(){
$(document).ready(function(){
。您不需要在Init
函数内部使用$(document).ready(function(){
。
我认为真正的问题在于您的DivToggle()函数。 您应该将该代码更改为以下内容:
(function( $ ) {
$.fn.DivToggle = function() {
$(this).toggle('fast');
};
})( jQuery );
然后,您可以通过创建选择器并调用它来调用DivToggle。 因此,如果要在页面中的所有div标签上运行此代码,请执行以下操作:
$('div').DivToggle();
以下是有关创建自定义插件的一些文档: http : //docs.jquery.com/Plugins/Authoring
您可能需要更改调用Init()和document.ready()的方式。 实际上,Init()函数现在实际上并没有做任何事情。 我认为您可以将代码更改为此,它将完成您想要的:
<script type="text/javascript">
//create the DivToggle() function
(function( $ ) {
$.fn.DivToggle = function() {
$(this).toggle('fast');
};
})( jQuery );
$(function () {
//call DivToggle() on all <div> tags when the page loads
$('div').DivToggle();
});
</script>
尝试命名您的javascript:
StackOverflow = {
function Init(){
}
return {
Init: Init
};
}();
调用您的函数
$(function(){
StackOverflow.Init();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.