jQuery:淡化不起作用

时间:2010-05-11 23:55:09

标签: javascript jquery

出于某种原因,当我调用jQuery的淡入淡出效果时,它不起作用。我做错了什么?

除了褪色之外,这个功能可以完成它应该做的一切。它会在正确的时间被调用。

function move_to_term(original_course, helper, term) {

    var cloned_course = original_course.clone(true);

    original_course.addClass('already-scheduled').droppable("destroy");

    helper.fadeOut(function() {
        cloned_course.appendTo(term).attr('style', '').fadeIn("slow");
    });

    cloned_course.draggable();
}

UPDATE:在FF 3.5.9和IE 8中都失败。

更新2:

此功能设置为droppable的drop事件的回调:

        var new_term = $(sprintf('<li class="term"><strong>%s</strong></li>', term["fields"]["name"]));

        new_term.data('pk', term['pk']);

        new_term.droppable({
            drop: function(event, ui) {
                move_to_term(ui.draggable, ui.helper, $(this));
            },
            accept: function(draggable) {
                return legal_for_term(draggable, $(this))
            },
            tolerance: 'pointer',
            activeClass: 'legal-drop-term-active',
            hoverClass: 'legal-drop-term-hover'
        });

更新3 :文本确实需要一段时间才能更改地点,就像淡入淡出正在发生但只是没有动画一样?或者也许我完全不喜欢。

更新4:这很好用,虽然它没有达到我希望的效果:

function moveToTerm(original_course, helper, term) {

    original_course.fadeOut('slow');

}

这是可放置的HTML:

<li class="term ui-droppable">
      <strong>Fall 2010</strong>
      <li class="course">Computing Cultures</li>
</li>

这是可拖动的HTML:

<li class="course ui-draggable">Introduction to Web Design</li>

ui.helper个对象不支持淡出?

更新5 :好的,现在我想做的就是淡化克隆对象:

function moveToTerm(original_course, helper, term) {

    var cloned_course = original_course.clone(true);

    original_course.addClass('already-scheduled');

    original_course.draggable("disable");
    cloned_course.draggable();

    cloned_course.appendTo(term).fadeIn("slow");
}

这不起作用,但将fadeIn()更改为fadeOut()会使其有效。为什么呢?

FIXED:

变化:

    cloned_course.appendTo(term).fadeIn("slow");

为:

    cloned_course.appendTo(term).hide().fadeIn("slow");

2 个答案:

答案 0 :(得分:1)

试试这个:

helper.fadeOut('slow', function() {
    cloned_course.appendTo(term).attr('style', '').fadeIn("slow");
});
  

可能是因为代码吗?

Jquery库的代码,不,它当然不能。

如果不知道代码执行的上下文,我就无法提供更多帮助。

答案 1 :(得分:0)

我会尝试在没有attr('style', '')调用的情况下调用它。我想可以定义干扰淡入淡出,因为淡入淡出是通过设置opacity的内联css(加上ie的另外一些魔法)来实现的。

修改

很难说(因为我无法真正测试它,描述可能更清晰)。不会链接到hide()帮助吗?

cloned_course.appendTo(term).attr('style', '').hide().fadeIn("slow");