ერთჯერადი მოვლენა 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-ს
ნებისმიერ მათზე დაწკაპუნებისას, მაგრამ მხოლოდ
პირველ დაწკაპუნებაზე. ინფუთზე მეორედ დაწკაპუნება
არ უნდა იწვევდეს რეაქციას.
მოცემულია აბზაცები რიცხვებით. აბზაცზე დაწკაპუნებისას მასში უნდა გამოჩნდეს მასში არსებული რიცხვის კვადრატი, მაგრამ მხოლოდ პირველ დაწკაპუნებაზე. აბზაცზე ორმაგ დაწკაპუნებაზე რიცხვი აბზაცში უნდა გაორმაგდეს, მაგრამ ასევე მხოლოდ პირველ ჯერზე.
მოცემულია აბზაცები. გახადეთ ისე, რომ პირველ
დაწკაპუნებაზე აბზაცზე მას ბოლოს დაემატოს '!',
მაგრამ მხოლოდ პირველ დაწკაპუნებაზე.