Аднаразовая падзея ў 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 пры
націску на любы з іх, але толькі па
першым націску. Паўторнае націсканне на
інпут не павінна выклікаць рэакцыі.
Дадзеныя абзацы з лікамі. Па кліку на абзац у ім павінен з'явіцца квадрат ліку, якое ён утрымлівае, але толькі па першым кліку. Па двайным кліку на абзац лік у абзацы павінна падвоіцца, але таксама толькі першы раз.
Дадзеныя абзацы. Зрабіце так, каб па першым
кліку на абзац яму ў канец дадаваўся '!',
але толькі па першым кліку.