• jquery中on/delegate的原理


    jquery中on/delegate的原理

    早期版本中叫delegate, 后来有过live函数,再后来统一用on。下面的方法等效:

        // jQuery 1.3
        $(selector).(events, data, handler);
        // jQuery 1.4.3+
        $(elements).delegate(selector, events, data, handler);
        // jQuery 1.7+ live过时 旧版本的jQuery中用户,应优先使用.delegate()来取代.live()
        $(elements).on(events, selector, data, handler);
    

    代理的好处就是动态添加的元素,之前之前绑定的事件依然有效,直接使用bind是无法在这种情况下生效的。

    代理事件其实就是利用了事件冒泡机制,给父元素绑定事件,在handler中判断target是否是期望的目标元素,然后做相应的处理。

        $(document).bind('click', function(e) {
            var ev = e || event;
            var target = $(ev.target || ev.srcElement);
            if (target.hasClass('btn')) {
                console.log('xxxx: ','you clicked btn');
                return false;
            }
            return true;
        });
    
  • 相关阅读:
    贪心[2019.5.25]
    顺序统计算法[2019.5.25]
    polya/burnside 学习
    虚拟机上装uoj
    一些常用的数据结构维护手法
    发一个数据生成器
    圆方树学习
    四校联考 推冰块
    Codeforces Training S03E01泛做
    HAOI2015 泛做
  • 原文地址:https://www.cnblogs.com/wancy86/p/delegate.html
Copyright © 2020-2023  润新知