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, speed);

于 2012-08-25T21:20:51.587 回答