используйте dragstart warnDefault, чтобы отключить перетаскивание изображения по умолчанию в браузере, но также отключить мое событие перетаскивания. - PullRequest
3 голосов
/ 03 января 2012

Я пытаюсь предотвратить перетаскивание изображения по умолчанию в браузере в dragstart, но каким-то образом оно также отключает событие drag and dragend.В любом случае, я могу отключить перетаскивание изображения по умолчанию в браузере, но оно все равно будет запускать событие окончания перетаскивания и перетаскивания?

Или единственный вариант для этого - использовать фоновое изображение?Я не хочу этого делать, потому что из-за этого мне нужно много кода изменить.Теперь я знаю, почему все используют background-image.

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

1 Ответ

0 голосов
/ 19 сентября 2018

В настоящее время вы можете использовать event.dataTransfer.clearData() в списке событий dragstart, чтобы отключить поведение по умолчанию, но при этом выполнить желаемого слушателя.

...