同时打印出所有子事件和事件处理程序

Print out all events and event handlers for all children concurrently

本文关键字:事件 事件处理 程序 打印      更新时间:2023-09-26

我有一个任务拦截当用户点击导航。有一个导航控件是用jquery手机"增强"的。整个事情是一团乱(有一个以上的事件触发当导航被点击),我试图找到哪个元素触发什么。我正在考虑编写函数,接受jquery选择器并递归遍历所有子节点并打印出所有事件和事件处理程序(console.log($(elem).data('events');)。
你们中有人碰巧已经有这个剧本了吗?

我自己做的

var printOutEvents = function (selector) {
    var parent = $(selector);
    function printer(item) {
        if (item.data('events') != undefined) {
            console.log(item);
            console.log(item.data('events'));
        }
        if (item.children().length > 0) {
            $.each(item.children(),
                function (i, it) {
                    printer($(it));
                });
        }
    };
    printer(parent);
}