IE9 & jQuery: сортировка элементов списка работает в современных браузерах и IE7, но не в IE9. - PullRequest
2 голосов
/ 28 июля 2011

Не совсем уверен, что здесь происходит.Это не работает в IE9.Возможно IE9 не обрабатывает JavaScript должным образом?Работает в Chrome, FF, Safari, IE7 (на самом деле я проверял это)

Вот мой код в скрипте: http://jsfiddle.net/SMqR9/31/

Не слишком сложно, просто вложенная сортировка.Что происходит?Что-то особенное, что мне нужно сделать для IE9?

javascript, о котором идет речь:

$j = jQuery.noConflict();
$j(function() {

 // these parts are here due to a z-index bug with IE
    $j('ul').bind('mousedown', function(e) {
        e.stopPropagation();
        if ($j.browser.msie && $j.browser.version < '9.0') $j(this).closest('.section').css('z-index', '5000');
    });
    if ($j.browser.msie && $j.browser.version < '9.0') {
        $j('ul').bind('mouseup', function(e) {
            $j(this).closest('.section').css('z-index', '1000');
        });
    }
// the actual sorting code / jqueryUI sorting
    $j("#sort_content_41,#sort_content_40,#sort_content_42,#sort_content_39").sortable({
        connectWith: '.section-content',
        dropOnEmpty: true,
        zIndex: 1004,
        cursor: 'crosshair'
    });
    $j("#sort_sections").sortable({
        placeholder: "ui-state-highlight",
        connectWith: '.sections',
        axis: 'y',
        zIndex: 1003,
        cursor: 'crosshair'
    });
});

$j(function() {
    $j("section-content").sortable({
        connectWith: "section-content",
        dropOnEmpty: true
    });
    $j(".section-content").disableSelection();
});

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Для тех, кто по какой-то причине не может обновить jQuery до последней версии, есть исправления для перетаскивания мышью.

См. Следующую ссылку:

http://forum.jquery.com/topic/jquery-ui-does-not-work-on-ie9

Я также столкнулся с подобной проблемой. Я исправил проблему, добавив следующий код в конец ui.core.js

(function ($) {
    var a = $.ui.mouse._mouseMove;
    $.ui.mouse._mouseMove = function (b) {
        if ($.browser.msie && document.documentMode >= 9) {
            b.button = 1
        };
        a.apply(this, [b]);
   }
}(jQuery));
1 голос
/ 28 июля 2011

Решением является обновление jQuery до последней версии. Старые версии не работают должным образом под IE9.

...