вызовите onmousedown и onclick, используя это внутри пользовательского класса с JS - PullRequest
0 голосов
/ 20 мая 2018

Я хочу сделать круг (армию) с движением, когда я перетаскиваю его и когда я нажимаю на него, он не должен двигаться, а делать что-то еще.

fucntion unit() {
    this.circle = document.createElementNS(svgNs, "circle");
    //Some attributes are added to this.circle
    document.getElementById("svg1").appendChild(this.circle);
    this.moving = false;
    this.circle.onclick = function () {
        showForm(this);
    }
    this.circle.onmousedown = function () {
        this.moving = true;
    }
}

1 Ответ

0 голосов
/ 20 мая 2018

Хорошо, я знаю, что вы не пометили jQuery в своем коде, но если вы посмотрели другие мои посты, я склонен использовать полный jQuery.Если вы хотите сделать это, сделайте следующее:

Допустим, это относится к элементу вашего круга:

$("#circle").draggable( 'enable' )
var isDragging = 0;
var isUp = 1;
$("#circle").mousedown(function() {
    isDragging = 0;
    isUp = 0;
})
$("#circle").mousemove(function() {
    isDragging = 1;
 });
$("#circle").mouseup(function() {
    isDragging = 0;
    isUp = 1;
});
$("#circle").mousedown(function() {
    if (isUp == 1) {
       //click function

    } else if (isDragging == 1) {
       //drag function
    }
});

Возможно, это немного глючит, но я попробовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...