可排序不在Firefox中工作,而是在其他浏览器中工作

时间:2014-01-08 14:50:37

标签: javascript jquery jquery-ui jquery-ui-sortable

我在我的asp.net应用程序中使用此示例(http://webdeveloperplus.com/jquery/saving-state-for-collapsible-drag-drop-panels/)。我在Firefox以外的每个浏览器中都可以进行排序,出于某种原因它会触发事件,但从不进入代码。

    $('.column').sortable({
        connectWith: '.column',
        handle: 'h2',
        cursor: 'move',
        placeholder: 'placeholder',
        forcePlaceholderSize: true,
        opacity: 0.4,
        start: function (event, ui) {
            //Firefox, Safari/Chrome fire click event after drag is complete, fix for that  
            if ($.browser.mozilla || $.browser.safari)
                $(ui.item).find('.dragbox-content').toggle();
        },
        stop: function (event, ui) {
            ui.item.css({ 'top': '0', 'left': '0' }); //Opera fix  
                updateWidgetData();
        }
        })
.disableSelection();
});

3 个答案:

答案 0 :(得分:0)

如果我没记错的话,Firefox不接受参数数量错误的函数作为事件函数。这是根据标准,所以你应该遵守。试试这个:

start: function (event) {

ui参数无法跟踪事件到函数。

答案 1 :(得分:0)

以下是使用jQuery对所有Chrome&火狐:

您必须删除jQuery Sortable代码中的行$(#sortable).disableSelection();。 (参考:Sortable | jQuery UI

<script>
$(function () {
    $("#sortable").sortable({
        placeholder: "ui-state-highlight"
    });    
});
</script>

希望它有所帮助;)

答案 2 :(得分:0)

我已经完成了

$("#stores-container").sortable({

    stop: function(event, ui) {

        textareaID = $(ui.item).find(' textarea').attr('id');

        textareaVal=$(ui.item).find(' textarea').val();

        editorID=$(ui.item).find('.mce-container').attr('id');

        $( "#"+editorID ).remove();

        $('#'+textareaID).show();
        tinymce.init({selector: '#'+textareaID});
    }

});