让前端飞Web 前端开发

总结bind的几种用法

2016-12-07  本文已影响100人  mytac

绑定多个事件类型

比如可以为元素一次性绑定多个事件

$(function(){
            $('#btn').bind('mouseover mouseout',function(){
                $(this).toggleClass('highlight')
            })
        })
代码演示

当光标划入按钮时,class切换为highlight,移出时,class切换为原来的值。等同于下面代码

        $(function(){
            $('#btn').mouseover(function(){
                $(this).toggleClass('highlight')
            }).mouseout(function(){
                $(this).toggleClass('highlight')
            })
        })

添加事件命名空间,便于管理

比如可以把为元素绑定的多个事件类型用命名空间规范起来,代码如下:

        $(function(){
            $('#btn').bind("mouseover.plugin",function(){
                $('#msg').text('加入了plugin~')
            }).bind("mouseout.plugin",function(){
                $('#msg').text('准备移除plugin')
                $(this).unbind(".plugin")
            }).click(function(){
                $(this).next().text('plugin事件消失~~')
            })
        })
代码演示

相同事件名称,不同命名方法

比如可以为元素绑定相同的事件,然后以命名空间的不同按需调用,代码如下:

$(function(){
            $('div').bind('click.plugin',function(){
                $('body').append('<p>click---plugin</p>')
            }).bind('click',function(){
                $('body').append('<p>click</p>')
            })
            $('#btn').click(function(){
                $('div').trigger("click!")//叹号的作用是匹配所有不包含在命名空间中的click方法
            })
        })

p.s带感叹号这个写法在1.9以上的版本已被废弃,这里只提供一种思路。

上一篇下一篇

猜你喜欢

热点阅读