0

私のinit中では、いくつかの変数と、それらの変数を使用する 1 つのアニメーションを設定しました。


で同じアニメーション/変数を使用したい場合はどうすればよいclickSlideですか? http://jsfiddle.net/lollero/4WfZa/ (これは明らかに機能しません。)

グローバルhttp://jsfiddle.net/lollero/4WfZa/1/にすることができました(を削除することによりvar


質問: より良い方法はありますか、それとも完全に問題ない方法ですか?

4

3 に答える 3

2

変数を関数の外に置き、値を取得します

var getWidth ;
var getHeight ;

$(function(){

    var slideBox = {

        gb: $('#box'),

        init: function() {

                sb = this,
                getBox = sb.gb,
                getWidth = getBox.width(),
                getHeight = getBox.height();
            getBox.animate({ marginLeft: '+='+getWidth }, 600 );

            $("#button").on("click", this.clickSlide);
        },

        clickSlide: function() {

            getBox.animate({ marginLeft: '+='+getWidth }, 600 );
        }
    };

    slideBox.init(); 
});

クリックサイド関数でvlueを取得できるように、関数で使用するよりも

于 2012-04-04T08:26:25.533 に答える
1

あなたがそれらをたくさん使うつもりなら、私はそれらをオブジェクトのプロパティにします.

于 2012-04-04T08:27:40.147 に答える
0

あなたの変数は不要なようです。必要なものはすべて http://jsfiddle.net/4WfZa/6/のようにアクセスできます。それらを保存する必要がある場合は、いつでもそれらをslideBoxオブジェクトに追加してから、initに入力できます。このようにして、変数はオブジェクトに対して保存され、その中の任意の関数で使用できます。

プライベート変数とパブリック変数の設定方法など、JavaScript ネームスペースに関する優れた記事については、この記事を参照してください。

于 2012-04-04T08:45:56.347 に答える