jQueryда бир мартаги вокеа
Биз
off
усули ёрдамида вокеаларни бўшатишни ўргангандамиз, биз куйидаги конструкциядан фойдалангандик:
$('li').on('click', function() {
$(this).append('!');
$(this).off('click', func);
});
Аввало биз
on
ёрдамиди функция-ишловчини бирламчи, сўнгра
off ёрдамиди бўшатар эдик.
jQueryда
one
деб номланган қулай усул мавжудки, у бир мартаги вокеани боглаш имконини беради -
у факат бир марта ишлайди, сўнгра автобосқичда ўзи бўшанади. Бу усул
биринчи параметр сифатида вокеа турини қабул қилади,
иккинчисида эса богланган функцияни.
Куйидаги мисолни биз куйида келтирилган HTML код асосида кўриб чиқамиз:
<ul>
<li>text</li>
<li>text</li>
<li>text</li>
</ul>
CSS код шундай кўринади:
li {
width: 100px;
cursor: pointer;
}
Энди ҳар бир li га
бир мартаги вокеани боглаймиз:
$('li').one('click', function() {
$(this).append('!');
});
Рўйхат пунктларини босиб кўринг.
Кўриб турганингиздек, биз
one усули ёрдамида худди шу эффектга эришдик.
Барча ҳаволаларга вокеа богланг -
ҳавола устига чиқилганда унинг матни охирига
унинг href айлана думбадаги
қўшилади. Ҳавола устига биринчи марта чиқилгандан сўнг
ундан href ни матн охирига қўшадиган
вокеани бўшатиш керак.
Барча инпутлар учун шундай қилингки, улар
ўзларининг value сини
уларнинг ҳар қайсиси босилганда чиқарсин, лекин факат
биринчи босилганда. Инпутни қайта босилгани
реакцияни келтириб чиқармаслиги керак.
Сонлар билан абзацлар берилган. Абзац босилганда унда ўз ичидаги соннинг квадрати пайдо бўлсин, лекин факат биринчи босилганда. Абзац икки марта босилганда абзацдаги сон икки баробарга оширилсин, лекин хам факат биринчи марта.
Абзацлар берилган. Абзац босилганда унинг охирига '!'
қўшиладиган қилинг, лекин факат биринчи босилганда.