IE AJAX刷新后Jquery可拖动停止

发布于 2024-10-17 02:59:50 字数 634 浏览 10 评论 0原文

我有一个网页,通过单击按钮从文本创建图像,并将图像添加到父 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 中。

I have a web page where I create images from text by clicking a button and add the image to a draggable div in a parent div element. The div is in an update panel. The divs are draggable after this event. I have another button which saves the html temporarily and recreates the divs with their positions when i add another image->text. However after this event all the old divs lose thier drag property, the last div which has been added still retains the draggable property.

 $(".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');
        }
    });
});

This is my current function. Please suggest ! This works perfectly in Firefox and chrome. Issue is only in IE.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倾其所爱 2024-10-24 02:59:50

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

Thankyou for your suggestions, i found the solution, when I add the div dynamically through the ajax[postback], i destroy draggble for all divs which have been added.$('.draggable').draggable('destroy');
Then reassign the draggable function using the live function $(".draggable'").live('mousedown click', function() {...});
Works perfectly.

最舍不得你 2024-10-24 02:59:50

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

function pageLoad()
{
$(".inner").live('mousedown', function() { $(this).draggable({ contains: "#<%=divMain.ClientID%>", 光标: "move", stop:函数(事件,ui){ var 位置 = $(this).position(); $(this).css(“顶部”,position.top + 'px'); $(这个).css(“左”,位置.left + 'px');
}

This is because jquery is losing its event after partial post backs.
try using this way,

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'); } }); });
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文