IE AJAX刷新后,Jquery可拖动停止

时间:2011-02-12 10:46:09

标签: jquery jquery-ui asp.net-ajax jquery-ui-draggable

我有一个网页,我通过单击按钮从文本创建图像,并将图像添加到父div元素中的可拖动div。 div位于更新面板中。在此事件发生后,div可以拖动。我有另一个按钮暂时保存html并在我添加另一个图像>文本时重新创建其位置的div。然而,在这个事件之后,所有旧的div都失去了他们的拖拽属性,最后添加的div仍然保留了可拖动的属性。

 $(".inner").live('mousedown', function() {
    $(this).draggable({
              containment: "#<%=divMain.ClientID%>",
        cursor: "move",
        stop: function(event, ui) {
             var position = $(this).position();
            $(this).css("top", position.top + 'px');
            $(this).css("left",position.left + 'px');
        }
    });
});

这是我目前的职能。请指教!这在Firefox和Chrome中完美运行。问题仅出现在IE中。

2 个答案:

答案 0 :(得分:1)

谢谢您的建议,我找到了解决方案,当我通过ajax [postback]动态添加div时,我销毁所有已添加的div的draggble。$('。draggable')。draggable('destroy' ); 然后使用实时函数$(“。draggable'”)重新分配可拖动函数.live('mousedown click',function(){...}); 效果很好。

答案 1 :(得分:0)

这是因为jquery在部分回发后丢失了它的事件。 尝试使用这种方式,

function pageLoad() { $(".inner").live('mousedown', function() { $(this).draggable({ containment: "#<%=divMain.ClientID%>", cursor: "move", stop: function(event, ui) { var position = $(this).position(); $(this).css("top", position.top + 'px'); $(this).css("left",position.left + 'px'); } }); }); }