mousedown
'da DOM'a yeni bir öğe enjekte etmek ve yeni öğeyi tekrar tıklatmadan hemen sürüklemeye (dragstart
tetikleme) başlamak istiyorum.Tek bir tıklamayla öğeyi başlatıp sürüklemeye başlayın
Projemde çok d3.js kullanıyorum. Ama d3 kullanarak dragstart
olayı tetikleyebilir bilmiyorum, o yüzden jQuery kullanarak çalıştı:
$("circle#pen").trigger("dragstart");
Ancak bu işe yaramaz.
mousedown
'da "kalem" oluşturmaya çalışarak sorunumu gösterdiğim bir jsFiddle bağlantısı var ve kullanıcı kalemi sürüklerse, bir çizgi çizer. dragend
'da kalem kaldırılır ve çizgi kaybolur. Ancak, kalem başlatılmalı ve sonra yeni bir tıklama ile sürüklenebilir. Bu sadece problemi göstermek içindir.
İşte bir related question for jQuery, ancak bunun için iyi bir yanıt yok.
Böyle bir kludge ... –
@TimSeguine Katılıyorum, iyi bir çözüm değil. Ama 2013'te geri döndüğüm şey buydu. Çözümünüz nedir? – swenedo
Açıkladığınıza dayanarak, muhtemelen "işleyici" işlevinin çalışmasına izin verilen alana olay işleyicilerini yerleştiririm. Mousedown zaten yaptığınız gibi "kalem" ekler. Bir mousemove işleyicisi "kalem" konumunu günceller. Bir fare tanıtıcısı "kalem" siler. Sorunuzda anlattığınızdan daha fazlası olmadığı sürece bunu sürükleme davranışıyla yapmakta ısrar etmenin gerçek bir nedeni yoktur. –