私は、実行時にスケーリングされたイメージのディメンション値を返すイメージディメンション計算関数を持っています。 (注:画像とその寸法のリストは配列からアクセスされている。)JavaScript:他の関数の中の関数を評価する
function setDesiredDimensions() {
var width = Math.min(imagesOrigWidths[currindex], desiredWidthLimit);
var height = Math.ceil((width/imagesOrigWidths[currindex]) * imagesOrigHeights[currindex]);
some more calculation code here...
return {width:width,height:height};
}
var size = setDesiredDimensions(imagesOrigWidths[currindex], imagesOrigHeights[currindex]);
その後、私はHTMLでいくつかのボタンがあります:
<a id="button1"></a>
<a id="button2"></a>
<a id="button3"></a>
、そのようにこれらのボタン上のさまざまなonclickのイベント:
$('#button1').click(function() {
currindex = (currindex+1) % max;
**I need to evaluate setDesiredDimensions function here **
$("#imageswap").attr({src: imgSrcBase(imagesGuids[currindex]), width: size.width, height: size.height})
});
ボタンは、ディメンション計算を適用する必要がある配列の現在のイメージインデックスを調整します。しかし、すべてのボタンクリック機能に同じsetDesiredDimensions関数をコピーして貼り付けるのではなく、クリーンなコードのショートカットとしてアクセス/評価するだけです。
私はeval()を聞いた。危険で遅いです。何か案は?
evalは悪であるようなものをそれが必要とする引数を渡すことができるように
はそれを再定義します。それを使用しないでください。これまで – Halcyon
'setDesiredDimensions()'を呼び出さないのはなぜですか? – bdares
評価は通常悪い考えです - http://stackoverflow.com/questions/86513/why-is-using-javascript-eval-function-a-bad-idea – kaj