2016-10-10 24 views
0

我想在一个全局变量在我的代码行11上添加使用性质改变的JavaScript插件

https://github.com/bahiirwa/Accrue.js/blob/gh-pages/jquery.accrue.js

的变化我想达到的效果是一个全局变量,当我通过一个属性(更正的术语,如果我错了,以影响称为插件的全局变量。)

<script src="jquery.accrue.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $(".calculator").accrue(
     currencySym: GBP, 
    ); 
}); 
</script> 

11号线在jquery.accrue.js这个样子

;(function($, window, document, undefined){ 

    var currencySym = "UGX"; 

    // let's start our plugin logic 
    $.extend($.fn, { 
     accrue: function(options){ 

在此先感谢。

+0

而且什么问题/问题? – Andreas

+1

您可能意思是'.accrue({0} {currencySym:“GBP”, });' – Bergi

+0

@andreas我想修改这个以允许某人通过货币单位的动态值。到目前为止,我只能在全局变量层面上工作。我需要添加一个属性来运行动态货币单位,而无需触及插件accrue.js文件 – omukiguy

回答

0

你应该通过你的货币单位为有效对象,即

$(".calculator").accrue({ 
    currencySym: 'GPB' 
}); 

然后你可以阅读选项,并相应地更新内部$.extend您的变量:

var currencySym = "UGX"; 

$.extend($.fn, { 
    accrue: function (options) { 
     // read currency from options object or use default (if undefined) 
     currencySym = options.currencySym || currencySym; 
     // ... 
    } 
}); 
+0

感谢Simon,但解决方案没有奏效。有什么不对劲。 https://github.com/jpederson/Accrue.js @andreas我想修改这个以允许某人传入货币单位的动态值。到目前为止,我只能在全局变量层面上工作。我需要添加一个属性来运行动态货币单位,而无需触及插件accrue.js文件 – omukiguy

+0

@omukiguy以及我只是试了一下,它适用于我...但您之前没有说过您不想编辑'jquery.accrue.js'文件。我不确定你如何认为你可以实现这一点。而实际上你在你的叉子里编辑了这个文件。无论如何,如果你想做一个分支,正确的方法是将默认值的'currencySym'属性添加到默认选项('$ .fn.accrue.options',jpederson的回购行131),然后使用'选项。 currencySym'贯穿你的插件实现。然后,您可以在初始化插件时动态传递'{currencySym:'GPB'}'作为选项对象。 –

+0

您是否可以分享使用您的解决方案编辑的accrue.js文件的要点? – omukiguy