我需要在jQuery中创建一个简单的函数,它将在其他几个函数中调用
$(document).ready(function() {
function reload_cart() {
alert('reload cart called');
}
});
$(document).ready(function() {
reload_cart(); //i need to call from here.
});
$(document).ready(function() {
$('a.add_to_cart').live('click', function (e) {
reload_cart(); //i need to call from here.
});
});
我在firebug中遇到的错误:reload_cart() is not defined
。
答案 0 :(得分:29)
reload_cart
是您第一次$(document).ready()
回调的本地回复。你不能从外部范围内调用它。
你应该将你的功能合并在一起:
$(document).ready(function() {
function reload_cart() {
alert('reload cart called');
}
reload_cart();
$('a.add_to_cart').live('click', function(e) {
reload_cart();
});
});
更好的解决方案是创建一个cart
对象,将reload
添加到其原型中,并在所有回调之外初始化它。
答案 1 :(得分:8)
是的,因为您在第一个$(document).ready(function(){})
范围内声明了该函数,因此它不会在该函数范围之外可用。
我不确定你为什么不止一次致电$(document).ready()
。试试这个:
$(document).ready(function(){
function reload_cart() {
alert('reload cart called');
}
reload_cart(); //i need to call from here.
$('a.add_to_cart').live('click', function(e) {
reload_cart(); //i need to call from here.
});
});
或者,您也可以在$(document).ready()
之外声明您的功能,它将全局可用。
答案 2 :(得分:6)
放置你的函数定义:
function reload_cart() {
alert('reload cart called');
}
外部文件。已经。
目前,它仅限于document.ready处理程序。
$(document).ready(function(){
//reload_cart is only available here
function reload_cart() {
alert('reload cart called');
}
});
答案 3 :(得分:0)
只需在此处添加大量知识
可以在$(document).ready()
内部创建函数,并且可以这样定义
$(document).ready(function(){
//define your function
reload_cart = function(){
alert('reload cart called');
}
//call your function, in another function or in html
reload_cart();
});
然后可以像其他任何用户定义的方法一样在您的HTML中调用 reload_cart()
。