可以对网页上的所有id标记执行鼠标操作

时间:2014-07-24 11:56:31

标签: 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元素的所有可能操作。

1 个答案:

答案 0 :(得分:0)

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