我得到了这个JQuery代码:
file:code.js
jQuery(function(){
function renderSVG(){
//Something
};
});
文件:index.html
<script>
function mostrarOdonto() {
renderSVG();
};
</script>
但我在这里遇到了一个问题: 在mostrarOdonto()中的renderSVG()中http://i.gyazo.com/9550a64fc16c7570107706fb2162d84f.png &#34;未捕获的ReferenceError:未定义renderSvg&#34;
我试过$ renderSVG();但不起作用。有人可以帮帮我吗?
非常感谢!
PD:对不起英语答案 0 :(得分:2)
这是由javascript关闭引起的。它在jQuery调用中是本地的,不能在外部访问。您可以在此处详细了解:MDN Documentation
您可以在jQuery函数调用之外声明对象,以使其全局可用。即:
function RenderSVG(){
//Do Stuff
}
jQuery(function(){
RenderSVG();
});
这确保了它可以在jquery范围之外访问 或者如果你真的需要它在jQuery中你可以去jQuery插件的路线la:jQuery docs
示例:
(function( $ ) {
$.fn.renderSVG = function( options ) {
//Do Stuff with canvas since it would be referenced in this.
};
}( jQuery ));
然后你可以这样称呼:$('#mycanvas').renderSVG({/*options*/});
您必须确保在加载jQuery和任何插件后调用代码。
在您的<head>
标记中
你应该把<script src=".../jquery.min.js">
或者你的文件调用jquery
然后是任何插件脚本... src="jquery.svg.js"
,然后你输入你的代码:
<script>
function RenderSVG(){
}
//And most important is that you call it after it is ready. In this example
//I use jQuery(window).load you can also use jQuery(document).ready
jQuery(window).load(function(){
RenderSVG();
});
</script>
如果它仍然不起作用,你必须确保svg方法的库没有做一些奇怪的事情。确保我们必须知道您正在使用的库。
答案 1 :(得分:0)
函数renderSVG()
是一个局部函数,因为它在jQuery(function(){ }
内。它仅在该范围内有效,因此无法通过其他范围访问。所以试试吧。
<script>
jQuery(function(){
function mostrarOdonto() {
renderSVG();
};
};
</script>
答案 2 :(得分:0)
你可以这样做JSFIDDLE LINK
HTML:
<input type="button" value="go" onclick=" mostrarOdonto();">
<强>脚本:强>
$.renderSVG = function() {
alert("I am calling form jquery");
};
$(document).ready(function() {
alert("function is ready to use now");
});
function mostrarOdonto() {
$.renderSVG();
};
这应该符合您的要求。 Jquery部分可以进入你的Code.js文件。
答案 3 :(得分:0)
我认为可以帮助你简单直接
$(document).ready(function() {
mostrarOdonto();
});
function renderSVG() {
alert("Testing purpose only");
};
function mostrarOdonto() {
renderSVG();
};