为什么这个jQuery脚本停止工作?

时间:2011-06-18 19:14:46

标签: jquery

我有一个拖放脚本来传输面板。

两天前我正在测试该脚本,它正在所有浏览器上运行,但现在它在Chrome中无效:

$('.dragbox')
.each(function(){
    $(this).hover(function(){
        $(this).find('#sc-top-panel').addClass('collapse');
    }, function(){
    $(this).find('#sc-top-panel').removeClass('collapse');
    })
    .find('#sc-top-panel').hover(function(){
        $(this).find('.configure').css('visibility', 'visible');
    }, function(){
        $(this).find('.configure').css('visibility', 'hidden');
    })
    .click(function(){
        $(this).siblings('.dragbox-content').toggle();
        updateWidgetData();
    })
    .end()
    .find('.configure').css('visibility', 'hidden');
});

此部分在Chrome中不起作用:

    .click(function(){
        $(this).siblings('.dragbox-content').toggle();

未发出updateWidgetData()次来电。其他功能和操作员也不起作用。

UPD: .click函数出现问题。 Chrome无法处理它。我试着替换她。例如,.bind('click'....); .live( '点击' ....)。这一切都行不通。

1 个答案:

答案 0 :(得分:2)

我对同一个脚本有同样的问题。我不知道出了什么问题,但几天前脚本工作正常,然后突然停止工作。可折叠部分工作正常(脚本保存折叠/未折叠的状态),但不会保存拖放。

整个脚本在IE和Mozilla中运行良好,Chrome是唯一不会保存状态的浏览器。我没有在Safari中测试它。

编辑:我已针对我的具体问题修复了脚本,不知道是否会帮助其他人。以下是代码的一部分:

        stop: function(event, ui){
        ui.item.css({'top':'0','left':'0'}); //Opera fix
        if(!$.browser.mozilla && !$.browser.safari)
            updateWidgetData();

我删除了:

if(!$.browser.mozilla && !$.browser.safari)

现在它工作正常。我不知道为什么突然代码停止只在Chrome中工作。如果其他人发生此问题,请告诉我。