Внутри моего плагина у меня есть метод, который запускает событие click и загружает ajax
loadAjax: function () {
self = this;
$('.loadmore').click(function (event) {
// load ajax and do some stuff
});
}
Я хотел бы перейти на
$( window ).scroll(function(event) {
// load ajax and do some stuff
});
но без повторной записи строк ajax. У плагина также есть опция для загрузки, которую я могу переключить с щелчка на прокрутку.
Возможно ли это без дублирования кода ajax?
Спасибо!
Вы можете попробовать вызвать различные методы объекта (основная идея):
var customCall = {
click: function(){
$('.loadmore').click(function (event) {
// load ajax and do some stuff
});
},
scroll: function(){
$( window ).scroll(function(event) {
// load ajax and do some stuff
});
}
}, choice;
choice = 'click'; // loadAjax call click function
loadAjax: function () {
self = this;
customCall[choice]();
}
...
choice = 'scroll'; // loadAjax call scroll function
Вы можете использовать событие $ (window).scroll(), чтобы вызвать событие $ ('. Loadmore'). Click().
$(window).on('scroll',function(e){
$('.loadmore').trigger('click');
});
Хотя вы хотите быть осторожным с тем, как часто это событие будет срабатывать. Возможно, используйте тайм-аут или определите, как далеко прокручивать окно, а не запускать каждое событие прокрутки.