首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dragstart preventDefault禁用浏览器默认图像拖动,但它也会禁用我的拖动事件

问使用dragstart preventDefault禁用浏览器默认图像拖动,但它也会禁用我的拖动事件
EN

Stack Overflow用户
提问于 2012-01-03 20:28:05
回答 1查看 2.9K关注 0票数 3

我试图阻止浏览器默认图像在dragstart中拖动,但不知何故它也禁用了拖动和拖动事件。不管怎样,我可以禁用浏览器默认的图片拖拽,但它仍然会运行拖拽结束事件吗?

或者be的唯一选择是使用背景图像?我不想这样做,因为我需要为此更改很多代码。现在我知道为什么每个人都使用背景图像了。

代码语言:javascript
复制
$("#addObjectBarContainer a img")
        .bind("dragstart", function(event){
            var tmpObjImg = $("<img></img>");
            tmpObjImg
                .attr({
                    id: "temp-img-object-drag"
                ,   src: $(this).attr("src")
                })
                .css({
                    position:"absolute"
                });

            tmpObjImg.appendTo("body");
            event.preventDefault();
        })
        .bind("drag" , function(event){
            $("#temp-img-object-drag").css({
                top: event.pageY,
                left: event.pageX
           });
        })
        .bind("dragend",function(event){
            var ObjectTop = event.pageY - $("#canvas").offset().top;
            var ObjectLeft = event.pageX -$("#canvas").offset().left
            $("#temp-img-object-drag").remove();
            $(this).parent().trigger("click");

            $(activeObject).css({
                top: ObjectTop,
                left: ObjectLeft
            });
            $(activeObject,"div:first-child").css({
                top: ObjectTop,
                left: ObjectLeft
            });

            dragresize.elmY = ObjectTop;
            dragresize.elmX = ObjectLeft;

            inspector_Update(activeObject, "select");
        });
EN

回答 1

Stack Overflow用户

发布于 2018-09-19 21:53:28

现在,您可以在dragstart eventlistener中使用event.dataTransfer.clearData()来禁用默认行为,但仍然可以执行所需的侦听器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8712303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档