Посмотрите на объект JavaScript Number и посмотрите, может ли он вам помочь.
toLocaleString()
отформатирует число с использованием разделителя тысяч, зависящего от местоположения. toFixed()
округляет число до определенного количества десятичных знаков. Чтобы использовать их одновременно, значение должно изменить свой тип обратно на число, потому что они оба выводят строку.
Пример:
Number(someNumber.toFixed(1)).toLocaleString()
Как остановить вызов события щелчка для событий mousedown / up на dragHandle?
Вы захватываете ... и едите ... это событие:
$(".dragHandle").click(function(event) { event.stopPropagation(); });
Ключевым моментом здесь является то, что click
, mousedown
и mouseup
являются разными событиями. Хотя вы можете представить щелчок
как mousedown
, за которым следует mouseup
], в действительности у вас может быть щелчок
событий, инициированных пользователем действия, в которых даже не задействована мышь, а также комбинации mousedown
и mouseup
, которые вообще не приводят к каким-либо событиям щелчком
.
Вы можете создать простую оболочку- "класс", который отслеживает события нажатия и подъема мыши:
(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 внутри обработчиков событий оболочки.