V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qiayue
V2EX  ›  问与答

不用jquery,怎么实现jquery的trigger?

  •  
  •   qiayue · 2012-08-27 13:41:13 +08:00 · 4517 次点击
    这是一个创建于 4478 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就是想让页面中的按钮被触发点击事件
    3 条回复    1970-01-01 08:00:00 +08:00
    litten
        1
    litten  
       2012-08-27 19:48:15 +08:00   ❤️ 1
    这个比较难自己去做,建议直接官方源码搞起。但是,官网源码又比较难懂了,它有一大部分只是为了兼容火狐,ff中jQuery对链接的默认行为都统一为不能触发,它做了另外一种处理(方法我看不懂)。
    额,我懂的只有这一点了,粗浅得很:
    trigger的实现原理最核心部分是handle,jq注册事件时候,会保存一个与元素及事件名相对应的cache中。当你通过等程序来强迫触发时,从cache中取到对应的函数。如果这个对应的函数是浏览器默认的那种,比如domInput.select,它就要再伪造一个function setDomSelected(){}这样的函数强制执行就可以了。
    kojp
        2
    kojp  
       2012-08-28 09:14:52 +08:00   ❤️ 1
    我总觉得jQ能实现的的东西,其实原生的js 都是能实现的。关键就是你是否愿意花时间去折腾,尤其是在
    浏览器的兼容性。这件蛋疼的事情上面。--------------其实,也没啥 。if else就是了。先把标准的浏览器写好。然后再加一些判断浏览器的功能。
    NemoAlex
        3
    NemoAlex  
       2012-08-28 09:58:28 +08:00   ❤️ 1
    buttonElement.click()
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2629 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:57 · PVG 18:57 · LAX 02:57 · JFK 05:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.