jquery ui-effects-wrapper造成破坏

von*_*dip 11 jquery-ui

我正在使用jquery-ui,并且在某些时候我使用show和hide函数非常重要地为进出的变化图像制作动画.

出于某种原因,经过几次尝试,我的页面上的控件突然停止响应点击.在使用firebug进行了一些戳戳后,我发现我的页面中充满了类ui-effects-wrapper的 div .

我不知道为什么会发生这种情况或者如何阻止它.如果我删除这些div,我再也看不到我一直在动画的图像了.

有任何想法吗?

小智 3

ui-effects-wrapper 是由 jquery UI 效果插件添加的。

以下是取自 jquery.effects.core.js 的一些代码:

// Wraps the element around a wrapper that copies position properties
createWrapper: function(element) {

    // if the element is already wrapped, return it
    if (element.parent().is('.ui-effects-wrapper')) {
        return element.parent();
    }

    // wrap the element
    var props = {
            width: element.outerWidth(true),
            height: element.outerHeight(true),
            'float': element.css('float')
        },
        wrapper = $('<div></div>')
            .addClass('ui-effects-wrapper')
            .css({
                fontSize: '100%',
                background: 'transparent',
                border: 'none',
                margin: 0,
                padding: 0
            });

    element.wrap(wrapper);
    wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element

    // transfer positioning properties to the wrapper
    if (element.css('position') == 'static') {
        wrapper.css({ position: 'relative' });
        element.css({ position: 'relative' });
    } else {
        $.extend(props, {
            position: element.css('position'),
            zIndex: element.css('z-index')
        });
        $.each(['top', 'left', 'bottom', 'right'], function(i, pos) {
            props[pos] = element.css(pos);
            if (isNaN(parseInt(props[pos], 10))) {
                props[pos] = 'auto';
            }
        });
        element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' });
    }

    return wrapper.css(props).show();
},
Run Code Online (Sandbox Code Playgroud)