IE9& jQuery:排序列表项在现代浏览器和IE7中有效,但不适用于IE9。

时间:2011-07-28 16:05:38

标签: javascript jquery internet-explorer jquery-ui internet-explorer-9

不确定这里发生了什么。它在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 个答案:

答案 0 :(得分:1)

解决方案是将jQuery更新到最新版本。旧版本在IE9下无法正常运行。

答案 1 :(得分:1)

由于某些原因无法将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));