Home >Web Front-end >JS Tutorial >How to Execute Different Functions on Multiple Clicks with jQuery?
Click and Toggle: Running Different Functions with jQuery
Developers often encounter the need to execute different blocks of code when a specific element is clicked multiple times. jQuery offers multiple solutions to address this requirement, including .toggle(). However, .toggle() may not always achieve the desired functionality.
One approach is to utilize jQuery's built-in .toggle() method. However, it's worth noting that since jQuery 1.7, this version of .toggle() has been deprecated and subsequently removed in jQuery 1.9. This is primarily due to the existence of multiple .toggle() methods.
For those seeking an alternative, jQuery provides a concise and versatile plugin specifically designed for this purpose.
(function($) { $.fn.clickToggle = function(func1, func2) { var funcs = [func1, func2]; this.data('toggleclicked', 0); this.click(function() { var data = $(this).data(); var tc = data.toggleclicked; $.proxy(funcs[tc], this)(); data.toggleclicked = (tc + 1) % 2; }); return this; }; }(jQuery));
This plugin, called .clickToggle(), requires two parameters: the functions that should be executed on the first and second clicks. It assigns an internal data value to track the current click count. When the element is clicked, it retrieves this data and calls the appropriate function.
To use the plugin, simply call it on the desired element and provide the relevant functions:
$('#test').clickToggle(function() { $(this).animate({ width: "260px" }, 1500); }, function() { $(this).animate({ width: "30px" }, 1500); });
In summary, jQuery offers multiple options for toggling between different functions on element clicks. While .toggle() may not always suffice, the aforementioned plugin provides a tailored solution that is both customizable and efficient.
The above is the detailed content of How to Execute Different Functions on Multiple Clicks with jQuery?. For more information, please follow other related articles on the PHP Chinese website!