ერთჯერადი მოვლენა jQuery-ში

როდესაც ჩვენ ვსწავლობდით მოვლენების გათიშვას off მეთოდის გამოყენებით, ჩვენ ვიყენებდით შემდეგ კონსტრუქციას:

javascript$('li').on('click', function() {
  $(this).append('!');
  $(this).off('click', func);
});

ჯერ ჩვენ ვამაგრებდით ფუნქცია-ჰენდლერს on-ის საშუალებით, შემდეგ კი ვთიშავდით off-ის საშუალებით.

jQuery-ში არის მოსახერხებელი მეთოდი one, რომელიც საშუალებას აძლევს მიბაძოთ ერთჯერად მოვლენას - ის შესრულდება მხოლოდ ერთხელ, და შემდეგ ავტომატურად გაითიშება. ეს მეთოდი პირველ პარამეტრად იღებს მოვლენის ტიპს, ხოლო მეორედ - მიბმულ ფუნქციას.

შემდეგ მაგალითს ჩვენ განვიხილავთ ქვემოთ მოცემული HTML კოდის საფუძველზე:

html<ul>
  <li>text</li>
  <li>text</li>
  <li>text</li>
</ul>

CSS კოდი ასე გამოიყურება:

cssli {
  width: 100px;
  cursor: pointer;
}

ახლა ყოველ li-ს ვამაგრებთ ერთჯერად მოვლენას:

javascript$('li').one('click', function() {
  $(this).append('!');
});

დააწკაპუნეთ სიის ელემენტებზე. როგორც ხედავთ, ჩვენ მივიღეთ იგივე ეფექტი, მადლობა one მეთოდს.

Задание 1

მიბაძეთ ყველა ბმულს მოვლენა - ბმულზე დაწკაპუნებისას მისი ტექსტის ბოლოს დაემატოს მისი href მრგვალ ფრჩხილებში. ბმულზე პირველი დაწკაპუნების შემდეგ უნდა გათიშოთ მისგან მოვლენა, რომელიც ამატებს href-ს ტექსტის ბოლოს.

Задание 2

ყველა ინფუთისთვის გახადეთ ისე, რომ ისინი გამოიტანენ თავიანთ value-ს ნებისმიერ მათზე დაწკაპუნებისას, მაგრამ მხოლოდ პირველ დაწკაპუნებაზე. ინფუთზე მეორედ დაწკაპუნება არ უნდა იწვევდეს რეაქციას.

Задание 3

მოცემულია აბზაცები რიცხვებით. აბზაცზე დაწკაპუნებისას მასში უნდა გამოჩნდეს მასში არსებული რიცხვის კვადრატი, მაგრამ მხოლოდ პირველ დაწკაპუნებაზე. აბზაცზე ორმაგ დაწკაპუნებაზე რიცხვი აბზაცში უნდა გაორმაგდეს, მაგრამ ასევე მხოლოდ პირველ ჯერზე.

Задание 4

მოცემულია აბზაცები. გახადეთ ისე, რომ პირველ დაწკაპუნებაზე აბზაცზე მას ბოლოს დაემატოს '!', მაგრამ მხოლოდ პირველ დაწკაპუნებაზე.