带有链接区域的可拖动图像

时间:2013-01-15 12:43:48

标签: javascript jquery jquery-ui jquery-ui-draggable

我知道我可以使用$('#id').draggable();来制作可拖动的图像 但是如果图像包含一些链接区域,则这些区域不能用于拖动。有没有办法告诉jQuery在点击(这个区域的定义的url应该是opend)和拖动(只是移动整个图像)之间有所不同?

3 个答案:

答案 0 :(得分:1)

我找到了实现目标的方法 图像和区域的代码必须放在div中:

<div id="overlayDiv">
    <img id="overlayImage" src="/Content/images/Overlay.png" usemap="#overlayMap" />
    <map name="overlayMap" id="overlayMap">
        [some areas]
    </map>
</div>

然后你可以使div可拖动:

var stopPropagation = false;
$('body').mouseup(function () { stopPropagation = false; });
$('#overlayDiv').draggable({
    stop: function () {
        stopPropagation = true;
    }
});

因为我的区域没有定义网址而只有onclick-events,所以我可以检查stopPropagation变量并决定是否忽略点击。

答案 1 :(得分:0)

似乎有一个选项可以防止#id中的元素被拖动:http://api.jqueryui.com/draggable/#option-cancel

将此应用于您的链接元素,它们将是可点击的。

$("#id" ).draggable({ cancel: "a" });

答案 2 :(得分:0)

我认为这是不可能的,也不会优先考虑你的UI点。您无法判断用户是否已点击“打开”或“拖动”链接。

因此,尝试更改链接上的click事件的默认行为,这会使用户感到困惑,这对用户体验不利。