2

さて、私は機知に富んでいます。これが私のコード、または少なくとも、問題を引き起こしている/私の質問に関連していると思われるセクションです。

//clicking back contacts scenario
$("#feat-back-arrow").live("click", function () {
    contractFeature();
});

//undo expand function for feature
//
//
function contractFeature() {
    $(feat_expanded_div).removeClass("expanded-feat");
    //actual slow animation
    var d = {};
    var speed = 400;
    d.width = feat_orig_width;
    d.height = feat_orig_height;
    d.left = feat_offset_left;
    d.top = feat_offset_top;
    d.marginRight = "0px"
    $(feat_expanded_div).animate(d, speed);
    showFeatures();
    returnFeatureHeader(feat_expanded_div);
    ExpandFeature = false;
}

クリックすると呼び出されるボタンを動的に生成#feat-back-arrowし、 を呼び出しcontractFeature()、具体的にはアニメーション イベントを実行します。このイベントは機能しませんfeat_expanded_div(上記でグローバル変数などとして定義し、 の他の関数で使用しますcontractFeature())。何も起こりません。

ここで、コードのセクションを次のように変更すると:

var d = {};
        var speed = 400;
        d.width = feat_orig_width;
        d.height = feat_orig_height;
        d.left = feat_offset_left;
        d.top = feat_offset_top;
        d.marginRight = "0px"
        $("div").animate(d, speed);

すべての div で実行されるように変更すると、正常に動作します。feat_expanded_div私が言ったように、関数returnFeatureHeader()はそれをパラメーターとして問題なく運ぶので、問題は を定義することではないことを私は知っています。

.liveアニメイトのイベントと関係があると思いますが、文字通り、今の洞察は非常に役に立ちます。=)

ありがとう

4

1 に答える 1

-1

feat_expanded_div が jquery オブジェクトの場合

(そのように宣言されています.. var feat_expanded_div = $("blahblah element"); )

次に、別の $() でラップしないでください。つまり、これを行うだけです

feat_expanded_div.animate(d, スピード);

于 2012-08-25T21:20:51.587 に答える