`
天梯梦
  • 浏览: 13741178 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

jQuery:无限循环两个或者多个事件 click / toggle between two functions

 
阅读更多

插件:

(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));

 

用法:( 需要jquery文件支持 )

<script type="text/javascript" src="https://code.jquery.com/jquery-1.5.js"></script>
<script>
$(function()
{
    $('div').clickToggle(function() {
        alert('First handler: ' + $(this).text());
    }, function() {
        alert('Second handler: ' + $(this).text());
    });
})
</script>

<div>1. div (click me)</div><br />
<div>2. div (click me)</div>

 

DEMO:http://jsfiddle.net/npwAz/1/

 

Note: It seems that at least since jQuery 1.7, this version of .toggle is deprecated, probably for exactly that reason, namely that two versions exist. Using .toggle to change the visibility of elements is just a more common usage. The method was removed in jQuery 1.9.

 

Update 2: 多事件循环,接受jquery 1.11版本

In the meantime, I created a proper plugin for this. It accepts an arbitrary number of functions and can be used for any event. It can be found on GitHub.

 

可以接受两个或两个以上函数循环执行,方法如下:

The function funcToggle provides the same interface as bind but accepts multiple event handlers:

funcToggle(eventType, [eventData], handler(eventObject),  [handler(eventObject), ...])

This changes the text color on each consecutive click, from to original color to red, to green, to black, to red again and so forth:

element.funcToggle('click', function() {
    $(this).css('color', 'red');
}, function() {
    $(this).css('color', 'green');
}, function() {
    $(this).css('color', 'black');
});

 

Bind handlers for multiple events:

element.funcToggle({
    'click': [function() {
            $(this).css('color', 'red');
        }, function() {
            $(this).css('color', 'green');
        }, function() {
            $(this).css('color', 'black');
        }],
    'mouseover': [function() {
            $(this).css('background-color', 'red');
        }, function() {
             $(this).css('background-color', 'white');
        }]
});

 

下载:jQuery-Function-Toggle-Plugin-master

DEMO: http://sources.ikeepstudying.com/jquery-functions-toggle/

 

更多内容参考:http://stackoverflow.com/questions/4911577/jquery-click-toggle-between-two-functions

本文转自:jQuery:无限循环两个或者多个事件 click / toggle between two functions

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Beginning jQuery:From the Basics of jQuery to Writing your Own Plug-ins

    《 Beginning jQuery:From the Basics of jQuery to Writing your Own Plug-ins》是Jack Franklin和Russ Ferguson合著的一本关于jQuery的入门教程。这本书旨在帮助读者从零基础开始,逐步掌握jQuery的核心概念,并...

    jquery点击改变class并toggle

    在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。本文将详细讲解如何使用jQuery实现点击事件改变元素的class,并结合toggle功能进行动态切换。 首先,...

    jQuery显示隐藏密码插件jquery.toggle-password

    本文将深入探讨“jQuery显示隐藏密码插件jquery.toggle-password”,这是用于增强网页表单用户体验的一个实用工具,尤其对于那些关注隐私和安全性的用户来说。 ### jQuery基础 在了解这个插件之前,我们先来回顾...

    jQuery toggle事件制作FAQ列表页.zip

    1. **jQuery toggle事件**:toggle事件是jQuery中的一个方法,它允许我们将两个或多个函数绑定到元素上。当用户点击该元素时,这些函数会交替执行。在FAQ列表页中,toggle事件用于控制列表项的展开和收缩,使得用户...

    jQuery点击无限弹出遮罩层代码.zip

    jQuery点击无限弹出遮罩层代码是一个常见的网页交互效果,常用于模态对话框、加载提示或者用户确认操作等场景。这个代码实现的核心是利用jQuery库来创建一个可重复弹出的半透明遮罩层,同时配合其他元素(如对话框)...

    极简单高效兼容jquery两个按钮点击隐藏或显示两个不同对象_jmjjp制作整理

    在本文中,我们将深入探讨如何使用jQuery实现两个按钮来控制两个不同对象的隐藏与显示,这一功能具有良好的浏览器兼容性,包括IE8及以上版本以及360等主流浏览器。这个功能由jmjjp制作整理,旨在提供一种简洁、高效...

    jquery导入word.docx

    2. toggle事件:用于绑定两个或多个事件。 3. one事件:用于绑定只执行一次的事件。 四、jquery的Ajax jquery的Ajax是jquery中非常重要的一部分,用于实现异步通信。以下是jquery的Ajax的一些基本概念: 1. 什么...

    jquery.toggle-password显示密码插件

    《jQuery Toggle Password插件详解与应用实践》 在Web开发中,用户界面的友好性和安全性是至关重要的。尤其是在涉及用户密码输入的场景下,如何在保证安全的同时提供良好的用户体验,是一个值得探讨的问题。jQuery ...

    240多个jQuery插件

    jQuery 是一个广泛使用的JavaScript库,它的核心理念是“写更少的代码,做更多的事情”。这个库因其轻量级和高效性而受到开发者们的青睐,压缩后的大小仅21k,支持包括Internet Explorer 6.0+、Firefox 1.5+、Safari...

    jquery css3实现列表toggle特效.zip

    3. **Toggle效果**:toggle是一个jQuery方法,用于在两种状态之间切换元素。在这里,toggle用于控制列表的可见性。当用户点击按钮时,toggle会根据列表当前是否可见来决定是显示还是隐藏列表,同时结合CSS3动画,...

    jquery点击显示更多列表文字.zip

    在"jiaoben181470"这个文件中,我们可以预见到它包含了一个或者多个JavaScript文件,这些文件可能实现了点击事件的绑定和toggle功能。`toggle()`是jQuery的一个方法,它可以切换元素的可见状态。当用户第一次点击时...

    jquery点击toggle并改变图片src源码

    `toggle`有两个主要用途:一是用来切换元素的可见性,二是绑定多个事件处理函数,并在每次点击时轮流调用它们。在这个案例中,我们将关注第二种用法。 代码实现的基本思路是这样的: 1. **选择元素**:首先,我们...

    240多个jQuery UI插件

    - **jQuery-Linked Select**: 实现两个或多个`&lt;select&gt;`元素的关联。 - **Auto-populate multiple select boxes**: 自动填充多选框中的选项。 - **替换选取框插件**: - **Choose Plugin (Select Replacement)**:...

    jquery做的无限级菜单

    在实现无限级菜单时,我们可能会用到`$(selector)`选择器、`.click()`事件监听器、`.slideToggle()`或`.toggle()`来控制子级菜单的显示和隐藏,以及`.children()`或`.find()`来查找和操作子元素。 4. **递归函数**...

    jQuery复合事件结合toggle()方法的用法示例

    toggle() 方法用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件。 语法: $(selector).toggle(function1(),function2(),functionN(),...) 当指定元素被点击时,在两个或多个函数之间轮流切换。...

    toggle-bool:vim插件来切换布尔值

    git clone https://github.com/sagarrakshe/toggle-bool ~/.vim/bundle/toggle-bool 将Bundle 'https://github.com/sagarrakshe/toggle-bool'添加到.vimrc 运行:BundleInstall 将NeoBundle '...

    bootstrap-toggle-buttons

    Bootstrap Toggle Buttons正是利用jQuery的事件监听和DOM操作功能来实现按钮的切换效果。 ### Toggle Button功能 Toggle按钮是一种在两种状态间切换的按钮,通常表现为开关或复选形式。在Bootstrap Toggle Buttons...

Global site tag (gtag.js) - Google Analytics