как делегировать mousedown и mouseup на динамически создаваемый div? - PullRequest
1 голос
/ 20 апреля 2020

rollmark создается динамически, поэтому мне нужно делегировать события на document

Попытка выполнить одно действие, пока нажата rollmark, и другое, когда мышь отпущена, но я получение синтаксической ошибки.

pls help.

$(document).on({'mousedown', '.rollmark' function(e){  
    console.log('down');
},
mouseup: function(){
    console.log('up');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='rollmark'>CLICK</div>

Ответы [ 3 ]

2 голосов
/ 20 апреля 2020

Я думаю, вам нужно вызывать .on отдельно для каждого обработчика, если вы хотите делегировать события:

$(document)
  .on('mousedown', '.rollmark', function(e) {
    console.log('down');
  })
  .on('mouseup', '.rollmark', function() {
    console.log('up');
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='rollmark'>CLICK</div>
1 голос
/ 20 апреля 2020

Вы можете сделать это так:

$(document).on('mousedown', '.rollmark', function(e) {  
  console.log('down');
}).on('mouseup', '.rollmark', function(e) {  
  console.log('up');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='rollmark'>CLICK</div>
0 голосов
/ 20 апреля 2020

вы пробовали ставить запятую после '.rollmark'?

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