Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как можно добавить метод в плагин? (https://javascript.ru/forum/jquery/52249-kak-mozhno-dobavit-metod-v-plagin.html)

Evgeny_Dedov 09.12.2014 23:53

Как можно добавить метод в плагин?
 
Здравствуйте.
Есть маленький плагин который реализует навигацию постраничную.
Разметка html (Прилетает с сервера). 4 кнопки и поле input.
<div id='navigTovars'>
	<div class="vhorButton" data-nav='pFirst'></div>
	<div class="vhorButton" data-nav='pPrev'></div>
	
	<span>Страница <input value='{current_page}' type='text' size='5' /> из <b>{total_pages}</b></span>

	<div class="vhorButton" data-nav='pNext'></div>
	<div class="vhorButton" data-nav='pLast'></div>

	<div class="vhorButton pReload" data-nav='pReload'></div>
</div>


$.fn.myPagination = function(callback){
	if( ! this.length) return;

	this.find('SPAN INPUT').livequery('keypress',function(e){
		if(e.keyCode==13) callback($(this).val());
	})

	this.find('.vhorButton').livequery('click',function(){
		var i = $(this).parent().find('SPAN INPUT');
		var p = parseInt(i.val());
		switch($(this).data('nav')){
			case "pNext" : p++; break;
			case "pPrev" : p--; break;
			case "pFirst" : p = 1; break;
			case "pLast" : p = i.next('B').text(); break;
			case "pReload" : break;
		}
		callback(p);
	})
}

// Используем так:
$("#navigTovars").myPagination(function(p){
	// Сюда прилетает страница для переход к нужной стр.
        // Можно сделать AJAX запрос или просто location.href
})


А как можно в плагин добавить ещё метод или функционал что бы просто можно было вызывать событие click для любой из кнопок.

Что то вроде:
$('selector').on('click', function(){});
$('selector').click();


Спасибо...

рони 10.12.2014 00:31

Evgeny_Dedov,
без плагина
$('#navigTovars').on('click','[data-nav="pFirst"]', function(){});
$('[data-nav="pFirst"]').click();

Evgeny_Dedov 10.12.2014 00:40

Цитата:

Сообщение от рони (Сообщение 345787)
Evgeny_Dedov,
без плагина
$('#navigTovars').on('click','[data-nav="pFirst"]', function(){});
$('[data-nav="pFirst"]').click();

без плагина... не подходит.
потому что мне нужно использовать данную навигацию как минимум в 10 местах проекта, и местами по 2 блока навигации на странице, а это получиться тупое дублирование кода.

Нужно как то добавить метод в плагин, блин уже всю голову сломал и гугл до 20 стр. перевернул...

рони 10.12.2014 02:28

Цитата:

Сообщение от рони
$('#navigTovars').on('click','[data-nav="pFirst"]', function(){});

то есть это вы в плагин добавить не можите заменив '#navigTovars' на this или поставить вашу функцию в любую из строк 12 - 15


Часовой пояс GMT +3, время: 17:30.