[英]Call JQuery function in JavaScript function
我得到了以下JQuery代碼:
文件:code.js
jQuery(function(){
function renderSVG(){
//Something
};
});
文件:index.html
<script>
function mostrarOdonto() {
renderSVG();
};
</script>
但是我在這里遇到了一個問題:mostrarOdonto()內部的renderSVG()中http://i.gyazo.com/9550a64fc16c7570107706fb2162d84f.png “未捕獲的ReferenceError:renderSvg未定義”
我嘗試了$ renderSVG(); 但不起作用。 有人可以幫助我嗎?
非常感謝!
PD:對不起英語不好
這是由javascript關閉引起的。 它在jQuery調用中是本地的,而在外部則無法訪問。 您可以在此處了解更多信息: MDN文檔
您可以在jQuery函數調用之外聲明對象,以使其全局可用。 即:
function RenderSVG(){
//Do Stuff
}
jQuery(function(){
RenderSVG();
});
這確保了它在jquery范圍之外可以訪問,或者如果您確實需要在jQuery中訪問它,則可以采用jQuery插件的方法: 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方法的庫沒有做奇怪的事情。 為了確保我們必須知道您正在使用的庫。
函數renderSVG()
是一個局部函數,因為它位於jQuery(function(){ }
。它僅在該范圍內有效,因此不能通過其他范圍訪問。
<script>
jQuery(function(){
function mostrarOdonto() {
renderSVG();
};
};
</script>
您可以通過這種方式做到這一點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文件。
我認為可以幫助您,這很簡單直接
$(document).ready(function() {
mostrarOdonto();
});
function renderSVG() {
alert("Testing purpose only");
};
function mostrarOdonto() {
renderSVG();
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.