Я пытаюсь расширить объект jQuery, но с некоторым трудом это делаю.Методы добавления JavaScript к объектам
$(document).ready(function() {
$('.single-item').slick({
dots: true,
infinite: false,
speed: 500,
customPaging: function(slider, i) {
// Theres a lot of stuff in this, removed for brevity
},
progressBar: function(slider, i) {
// Want to create this method
// alert is not defined
window.onload(window.alert("YES"));
}
});
// slick is not defined
console.log(typeof(slick));
});
Я пытаюсь много таких вещей, как с помощью JQuery в "расширить":
var progressBar = function(slider, i) {
window.onload(window.alert("YES"));
};
$.extend(slick, progressBar);
// Also tried '.slick-slider' in place of slick
попытался также реализации:
$.fn.progressBar = function(i) {
window.onload(alert(this.i))
};
$('.single-item').progressBar(i);
"customPaging" существует в основном JS-файла , который я не хочу изменять, а скорее расширять дополнительные методы для объекта. В качестве параметров требуется «ползунок» и «i». Поскольку он уже существует в основном js-файле, его было достаточно легко манипулировать.
Однако я хочу создать совершенно новый метод, называемый «progressBar», который также имеет доступ к переменным «слайдер» и «i» объекта.
Может ли кто-нибудь помочь мне понять, что происходит, и продемонстрировать, как создать метод «progressBar», как я хочу?
'slick' не определен, потому что он находится в' $ .fn.slick'. Что касается остальных, покажите нам, как именно вы «расширяете» это? – adeneo
Я пробовал использовать «расширенный» метод jQuery, как показано выше, а также «Object.prototype.extend», но я не делаю это правильно, главным образом потому, что не знаю, какой объект я пытаюсь расширить. У тебя есть какой-нибудь совет? – amoeboar
Вы видите, когда вы называете 'slick', вы называете его' $ (element) .slick (options) ', параметры определены внутри плагина, стандартного способа расширения этих параметров нет. – adeneo