Javascript jQuery无冲突模式
我试图在Joomla站点上使用jQuery,Joomla以noConflict模式加载jQuery。我试图用Javascript jQuery无冲突模式,javascript,jquery,joomla,Javascript,Jquery,Joomla,我试图在Joomla站点上使用jQuery,Joomla以noConflict模式加载jQuery。我试图用(function($){…})(jQuery)包装我的代码 这项工作: function calculate() { var de = document.calculator.de.value; var para = document.calculator.para.value; var quantia = document.calculator.quantia.
(function($){…})(jQuery)包装我的代码代码>
这项工作:
function calculate()
{
var de = document.calculator.de.value;
var para = document.calculator.para.value;
var quantia = document.calculator.quantia.value;
var pais = jQuery("#para option:selected").text();
var curr = (pais == "Brazil" ? "Reais" : "Euro");
var tax = (pais == "Brazil" ? 0 : 3)
result = Math.round(quantia * para) + ' ' + curr;
jQuery('#result').text(result);
e.preventDefault();
return false;
}
这不起作用(未捕获引用错误:未定义计算):
我可能遗漏了一个小细节,但哪里出了问题?函数calculate
是闭包的局部函数。最好的解决方案是将所有代码放入闭包中。如果不可能,您可以通过以下方式将功能分配给窗口
:
window.calculate = calculate;
您也可以从闭包中返回它,然后将其分配给calculate
变量:
calculate = (function($) {
...
return calculate;
})(jQuery);
太好了,行得通。但是,如果我有几个函数,我是否必须以类似的方式包装它们中的每一个,或者我是否可以一次包装所有的函数?(函数calculate
从这里调用:
@johanpw,因为您已经在使用jQuery:只需绑定一个合适的事件侦听器即可。阅读jQuery.on
calculate = (function($) {
...
return calculate;
})(jQuery);