JQuery在iframe之外可拖动。内部iframe可放置

时间:2011-11-30 22:07:22

标签: jquery jquery-ui iframe jquery-ui-draggable

我在iframe外面有一个jquery draggable。我需要在iframe droppables中创建元素。当我拖动iframe时,“over”事件不会触发,但如果我继续拖动iframe,则“over”事件会触发。

看起来这也发布在这里,但从未回答过。 jQuery and iframes and weird positioning: is there a workaround?

编辑:代码示例

HTML

<div id="draggable">
</div>

<iframe id="iframe"/>

的javascript

$("#draggable").draggable();

var body = $('#iframe').contents().find('body');
$(body).droppable({
    over:function(event,ui) {
        alert('over droppable');
    }
});

1 个答案:

答案 0 :(得分:0)

我认为你可以使用这个代码。

HTML

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
</head>

<body>
<div style="width:400px; height:200px; overflow:auto">
<iframe src="iframe.html" style="width:400px; height:400px;"></iframe>
</div>
<div  style="width:60px; height:60px; background-color: #808080" id="drag"></div>
</body>
</html>

的javascript

$(function () {
        $("iframe").load(function () {
            var iframe = $(this).contents();
            iframe.find('#iframe_container').droppable(
            {
                iframeFix: true,
                drop: function (event, ui) { alert('dropped'); }
            });
        });
        $('#drag').draggable({iframeFix: true});
    });