JQuery event.stopPropagation () не работа

Посмотрите на объект JavaScript Number и посмотрите, может ли он вам помочь.

  • toLocaleString() отформатирует число с использованием разделителя тысяч, зависящего от местоположения.
  • toFixed() округляет число до определенного количества десятичных знаков.

Чтобы использовать их одновременно, значение должно изменить свой тип обратно на число, потому что они оба выводят строку.

Пример:

Number(someNumber.toFixed(1)).toLocaleString()

12
задан Sawtaytoes 9 January 2016 в 05:46
поделиться

2 ответа

Как остановить вызов события щелчка для событий mousedown / up на dragHandle?

Вы захватываете ... и едите ... это событие:

$(".dragHandle").click(function(event) { event.stopPropagation(); });

Ключевым моментом здесь является то, что click , mousedown и mouseup являются разными событиями. Хотя вы можете представить щелчок как mousedown , за которым следует mouseup ], в действительности у вас может быть щелчок событий, инициированных пользователем действия, в которых даже не задействована мышь, а также комбинации mousedown и mouseup , которые вообще не приводят к каким-либо событиям щелчком .

]
16
ответ дан 26 October 2019 в 10:46
поделиться

Вы можете создать простую оболочку- "класс", который отслеживает события нажатия и подъема мыши:

(function () {
   var DragDropHandler = {
      isDrag: false,

      mouseDownHandler: function (event) {
        alert("down");
        event.stopPropagation();
        this.isDrag = true;
      },

      mouseUpHandler: function (event) {
        alert("Up");
        event.stopPropagation();
        this.isDrag = false;
      },

      clickHandler: function (event) {
         event.stopPropagation();
         // Check if we've already received a mouseDown-event. If we have,
         // disregard the click event since we want drag-functionality
         if(this.isDrag) { return; }
         alert("click");
      }
   };

   $(".tree li").click(function(event) {
      DragDropHandler.clickHandler.call(DragDropHandler, event);
   });
   $(".dragHandle").mousedown(function(event) {
      DragDropHandler.mouseDownHandler.call(DragDropHandler, event);
   });
   $(".dragHandle").mouseup(function(event) {
      DragDropHandler.mouseUpHandler.call(DragDropHandler, event);
   });
})();

Это создает закрытие и делегирует обработку событий объекту DragDropHandler. Обратите внимание, что я использовал function.call (первый параметр - контекст), чтобы убедиться, что this ссылается на объект DragDropHandler внутри его методов. Поскольку мы создали анонимную функцию, к которой нельзя получить доступ из глобального пространства, я считаю приемлемым использовать ссылку DragDropHandler внутри обработчиков событий оболочки.

3
ответ дан 26 October 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: