new Plugin()
. Если бы Вы написали пару своих функций типа append, то jQuery Вам будет не нужна.$this.trigger('myEvent.nameSpace', [...extraparams])
и вызывать $('.my-block').on('myEvent.nameSpace', function(event, extraparams) {
// code
});
setNumberToUserFormat(setNumberToFixed(2553267.46382, 4), [' ', ',']);
//> "2 553 267,4638"
/**
* Установить к-во чисел после запятой (без округления)
* @param {number} number - число
* @param {number} fixed - к-во чисел после запятой
* @returns {number} - обрезанное число
**/
function setNumberToFixed(number, fixed) {
if ((typeof number === 'number' || typeof number === 'string') && !isNaN(number - parseFloat(number))) {
number = String(number);
if (number.split('.').length > 1) {
var left = number.split('.')[0];
var right = number.split('.')[1].substr(0, (!fixed ? 4 : fixed));
return Number(left + (fixed !== 0 ? '.' + right : ''));
} else {
return Number(number);
}
}
}
/**
* Форматирования числа в пользовательский формат
* @param {number} number - число
* @param {array} format - формат числа, [0] - тысячи, [1] - дробные
* @returns {string} - число в новом формате
**/
function setNumberToUserFormat(number, format) {
if ((typeof number === 'number' || typeof number === 'string') && !isNaN(number - parseFloat(number))) {
number = String(number);
var format = $.extend({}, [' ', '.'], format);
var reg = { dot: new RegExp(/\./g), digit: new RegExp(/(\d)(?=(\d\d\d)+([^\d]|$))/g) };
if (number[0] === '0') {
return number.replace(reg.dot, format[1]);
} else if (number.split('.').length == 1) {
return number.split('.')[0].replace(reg.digit, '$1' + format[0]);
} else {
var start = number.split('.')[0].replace(reg.digit, '$1' + format[0]);
var end = number.split('.')[1].replace(reg.dot, format[1]);
return start + format[1] + end;
}
}
}
counter(total)
function counter(total) {
var $total = $('i.total');
$({ Counter: parseFloat($total.text()) }).animate({ Counter: total }, {
duration: 500,
easing: 'swing',
step: function() {
var value = this.Counter.toFixed(1);
value = value.replace(/(\d)(?=(\d{3})+(\D|$))/g, '$1 ');
$total.text(value);
}
});
}
function ajax(params) {
var request = new XMLHttpRequest();
request.open(params.method || 'GET', params.url || window.location.href, params.async || true);
request.setRequestHeader('Content-Type', params.contentType || 'application/x-www-form-urlencoded; charset=UTF-8');
request.onreadystatechange = function() {
if (this.readyState === 4) {
if (this.status >= 200 && this.status < 400) {
if (params.success) params.success(this.response, this.statusText, this.status);
} else {
if (params.error) params.error(this);
}
}
};
request.send(params.data ? JSON.stringify(params.data) : '');
request = null;
}
ajax({
url: 'modules.php',
method: 'POST',
contentType: 'application/json; charset=UTF-8',
data: { x: 5, y: 10 },
async: true,
success: function(response, statusText, status) {
console.log('Запрос успешно отправилен, получаем ответ', response);
},
error: function(XHR) {
console.log('Ошибка запроса', XHR);
}
});
Передать функцию очень просто:
Или так: