Я сделал много специальных событий jQuery, и сейчас я пытаюсь сделать их плагинами jQuery.
Мой код:
$.each("down move hold up tap swipeUp swipeDown swipeLeft swipeRight drag dragCell".split(" "), function(key, value) {
$.fn[value] = function() {
var args = [value].concat(Array.prototype.splice.call(arguments,0));
if ( $.isFunction(arguments[0]) || $.isFunction(arguments[1]) ) {
return this.bind.apply(this, args);
} else {
return this.trigger.apply(this, args);
}
};
});
Где я зацикливаю массив имен(вниз, перемещение, удержание, вверх и т. д.) и динамически создает плагины jQuery.
Как вы можете видеть значение взятия и имя плагина после него: $.fn.down
, $.fn.move
и т. д...
Затем я беру аргументы и перебираю его через собственный метод массива.
Array.prototype.splice.call(arguments, 0);
Возвращает собственный массив Array [arguments[0], arguments[1], ...]
И concat
itс value
и заканчивается:
["down", arguments[0], arguments[1], ...],
["move", arguments[0], arguments[1], ...],
....
Есть ли риск сделать это (используя тогда собственные методы и другие объекты, которые имелись в виду), и есть ли вероятность потери данных?
Как вы можете видеть, это портит методы jQuery bind
и trigger
.Это также опасно?