javascript - 网页上所有 id 标签均可进行鼠标操作

标签 javascript jquery jquery-plugins dom-events

我想要做的是,找到网页上每个元素 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 元素上的所有可能的操作。

最佳答案

您可以为页面上的每个属性应用唯一的类,然后在其上编写 .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>

关于javascript - 网页上所有 id 标签均可进行鼠标操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24933015/

相关文章:

javascript - 等待 Bluebird promise 解决后再继续

javascript - Gulp 任务不等待上一个任务完成

javascript - SAPUI5 在 Controller 中获取 OData 模型

jquery - $(this) 在自定义 jQuery 函数中不起作用

javascript - 使用 Ajax 和 Jquery 验证提交表单

javascript - jAlert 无法在循环中正常工作

javascript - 使用 JQuery 确定元素集合是否可见,例如 $ (".someClass")

jquery - 无法在客户端处理时使用 ajax.url.load() 方法重新加载 dataTable

jquery - 如何使用 getter 方法实现 jQuery 插件?

jquery - 在 IE7 中为 jquery ganttView 使用 css