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

chrome 下,如何知道鼠标点击触发了什么代码?

  •  
  •   alexapollo · 2014-06-22 23:18:51 +08:00 · 5631 次点击
    这是一个创建于 3800 天前的主题,其中的信息可能已经有所发展或是发生改变。
    好奇http://douban.fm/的右拉效果怎么做的,用jQuery的animate跨平台兼容性不大好
    14 条回复    2014-06-23 09:45:51 +08:00
    solodxg
        1
    solodxg  
       2014-06-22 23:33:37 +08:00   ❤️ 4
    alexapollo
        2
    alexapollo  
    OP
       2014-06-23 00:06:34 +08:00
    @solodxg 好东西,就是慢了点……
    wssgcg1213
        3
    wssgcg1213  
       2014-06-23 00:23:04 +08:00 via iPad
    鼠标点击 click事件?
    chrome自带的developer tool里面
    选中节点之后 可以在event listener里面找到某个事件绑定的函数
    alexapollo
        4
    alexapollo  
    OP
       2014-06-23 00:29:39 +08:00
    @wssgcg1213 没看懂click对应的事件,写的是jQuery函数,好像没写实际触发的函数?
    实际触发的函数好像是这个:
    function (D){if($("#fm-sidebar").hasClass("open")){B(["send","event","Button","clicked","Hide Explore Panel"]);C("close")}else{B(["send","event","Button","clicked","Show Explore Panel"]);C("open")}}
    chairuosen
        5
    chairuosen  
       2014-06-23 00:43:25 +08:00
    @alexapollo 在jquery的click上打断点,看调用栈就知道了
    jsonline
        6
    jsonline  
       2014-06-23 00:49:00 +08:00
    var C = function(D) {
    if (D == "close") {
    $.event.trigger("HIDE_SCROLLBAR");
    $("#fm-sidebar").animate({width: 26}, 500, function() {
    $("#fm-sidebar").toggleClass("open");
    j()
    })
    } else {
    if (D == "open") {
    $.event.trigger("SHOW_SCROLLBAR");
    $("#fm-sidebar").animate({width: 674}, 500, function() {
    $("#fm-sidebar").toggleClass("open");
    j()
    })
    } else {
    if (D == "init") {
    $.event.trigger("SHOW_SCROLLBAR");
    $("#fm-sidebar").animate({width: 674}, 500)
    }
    }
    }
    if (!$("#fm-sidebar").hasClass("open")) {
    k();
    $("#fm-channel-list").css("overflow-y", "hidden");
    unbindPlayerListMW();
    $.event.trigger("START_SCROLLSTATUS")
    } else {
    if (l) {
    clearInterval(l)
    }
    $("#fm-channel-list").css("overflow-y", "auto");
    $.event.trigger("STOP_SCROLLSTATUS");
    bindPlayerListMW()
    }
    };

    确认是 jQuery 的 animate
    jsonline
        7
    jsonline  
       2014-06-23 00:50:53 +08:00   ❤️ 1
    调试办法:
    1. 在 elements 面板选中 <div id="fm-sidebar"
    2. 右键 Break on ... -> Attributes modifications
    3. 触发事件
    4. 遇到压缩的代码就格式化之。
    jsonline
        8
    jsonline  
       2014-06-23 00:54:08 +08:00
    jQuery的animate跨平台兼容性真的是毋庸置疑的呀,jQuery 火的主要原因就是兼容性好,以及API优雅。
    不知道你为什么觉得兼容性不好,遇到什么 bug 了?
    jsonline
        9
    jsonline  
       2014-06-23 00:56:21 +08:00   ❤️ 1
    接7楼 忘了说
    5. 注意观察调试窗口的 Call Stack。
    jsonline
        10
    jsonline  
       2014-06-23 01:00:23 +08:00
    @solodxg 小页面还不错。如果在胖页面里开,慢到不行啊。
    alexapollo
        11
    alexapollo  
    OP
       2014-06-23 01:07:55 +08:00
    @jsonline 我明天仔细研究一下,然后再和你讨论。
    可能是我为了做多浏览器的兼容把JS写的不对了。。
    现象是在safari下滑动的不流畅,没有douban.fm的效果
    joyee
        12
    joyee  
       2014-06-23 03:53:58 +08:00
    @solodxg 好用。点赞~
    Epsil0n9
        13
    Epsil0n9  
       2014-06-23 05:07:43 +08:00
    希望FIREFOX也能有类似扩展。。。
    66beta
        14
    66beta  
       2014-06-23 09:45:51 +08:00
    @solodxg 赞!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2576 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:40 · PVG 18:40 · LAX 02:40 · JFK 05:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.