【问题标题】:Mouse actions possible on all id tags on a webpage可以在网页上的所有 id 标签上执行鼠标操作
【发布时间】:2014-07-24 11:56:30
【问题描述】:

我想要做的是,在网页上的每个元素 id 上找到所有可能的操作(单击、悬停等)。

以下是我的努力:

function executeInteractions($) {

    for (var interaction_count = 0; interaction_count < interactions.length; interaction_count++) {
        var obj = interactions[interaction_count];

        for (var event_count = 0; event_count < obj.events.length; event_count++) {
            (function(elem, event_name, e_count, i_count, t_i_count) {
                setTimeout(function() {
                    elem.trigger(event_name);
                    var sendData = {id : elem.attr('id') , event_n: event_name }
                    &.post("link#",sendData)

                    setTimeout(function() {
                        }
                    }, 10);

                    if (i_count + 1 >= t_i_count) {
                        window.interactionsComplete = true;
                    }
                }, 500 * i_count);
            }(obj.item, obj.events[event_count], event_count, interaction_count, interactions.length));
        }
    }
}

function findInteractions($) {
    $(document).click(function(e) {
        e.preventDefault();
    });
    $(document).submit(function(e) {
        e.preventDefault();
    });
    var node, toBeProcessed = new Array;
    toBeProcessed.push($('body')[0]);
    while (toBeProcessed.length) {
        node = $(toBeProcessed.pop());
        var eventObject = node.data('events');
        if (eventObject) {
            var events = [];
            for (var e in eventObject) {
                events.push(e);
            }
            interactions.push({
                'item': node,
                'events': events
            });
        }
        var childrens = node.children();
        if (childrens && childrens.length > 0) {
            for (var i = 0; i < childrens.length; ++i) {
                toBeProcessed.push(childrens[i]);
            }
        }
    }
}

window.interactions = [];

当服务器端收到 post 请求时,我得到很多 id 的空值。

有人可以在这里帮助我吗,或者可以建议任何其他有效的方法来捕获网页上 id 元素上所有可能的操作。

【问题讨论】:

    标签: javascript jquery jquery-plugins dom-events


    【解决方案1】:

    您可以将唯一的类应用于页面上的每个属性,然后在其上写入.click()/.mouseover() JQuery 事件。

    HTML

    <p class="uniqueClass">1st para</p>
    <p class="uniqueClass">2nd para</p>
    

    JQuery 代码

    <script>
       $( ".uniqueClass" ).click(function() {
         alert("Clicked");
       });
    </script>
    

    对于鼠标悬停,您可以使用 .mouseover() 函数,例如:

    <script>
       $( ".uniqueClass" ).mouseover(function() {
         alert("Mouse Over");
       });
    </script>
    

    【讨论】:

    • 实际上我无法对页面进行编辑,我只需要使用元素 id。
    • 然后你可能想写在每种类型的元素上,比如 $( "p" ).click(function() {
    • 但这会给我一个成功,即使我点击一个 id ,比如说页面标题。但我只需要那些支持点击和悬停的元素 ID。
    • 我想我迷路了。你说你想知道整个网页上任何元素的所有点击。以上解决方案/评论将解决您的问题。
    • 我想找到对元素 id 可能的操作。例如,如果它是一个图像,那么“悬停”就是它的动作。如果它是一个链接,那么“点击”操作这就是我正在寻找的。​​span>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 2021-08-17
    • 1970-01-01
    相关资源
    最近更新 更多