2014-02-18 120 views
0

我有在外部JS文件中定义的函数的jquery: myJquery.js调用从外部JS XHTML JQuery的功能文件

(function($) { 
     $.fn.test = function (options) { 
      //Extended default options 
      var opts = $.extend({ 
        chars: 0 
}, options); 
...doSomething... 
})(jQuery); 

在XHTML Inclding此文件作为:

<script type="text/javascript" src="_/js/myJquery.js"/> 

和试图访问为:

$(document).ready(function() { 
     $("input.testClass").each(function() { 
          $(this).test({ 
           chars:10 
         }); 
        }); 
}); 

但得到js错误说'测试'功能未找到。

回答

0

您的test函数的作用域范围是外部文件空间,而不是全局环境。如果您确定jQuery具有$的命令,那么在不包含function($)包装的情况下附加您的函数。

编辑:虽然上面的仍可能是相关的其他...它的工作罚款(至少对于仅仅显示警报)与}到位:

外部文件inlcuded与<script type="text/javascript" src="testing.js"></script>

(function($) { 
    $.fn.test = function (options) { 
     //Extended default options 
     var opts = $.extend({chars: 0}, options); 
     alert('boo: '+opts.chars); 
    } 
})(jQuery); 

页:

<script type="text/javascript"> 
$(document).ready(function() { 
     $("h1").each(function() { 
       $(this).test({ 
        chars:10 
      }); 
     }); 
}); 
</script> 
+0

我删除从myJquery.js功能($)(先去除最后一行从上面myJquery.js片断),但史迪威同样的问题。我有没有正确理解你的建议! –

+0

哈哈,甚至没有注意到,但你缺少一个花括号来关闭函数声明。 –