在DOM元素上触发单击事件

时间:2014-05-29 17:39:20

标签: javascript jquery html twitter-bootstrap dom

我尝试在选定的DOM元素上触发click事件,但我的代码无效。

您可以在JSFiddle上看到我的尝试。

<ul class="list-group">
    <a href="#" class="list-group-item" data-key="32">LG GOLA 8M</a>
    <a href="#" class="list-group-item" data-key="33">LG 5-6M</a>
    <a href="#" class="list-group-item" data-key="34">LP 5-6M</a>
</ul>

$(document).ready(function() {
    // I get the string tr from URL parameters
    var tr = "fix_LG%20GOLA%208M";
    if (tr !== null) {
        var terminrahmen = $('.list-group-item').filter(function() {
            return $(this).text() === decodeURI(tr).substring(4);
        });

        // Trigger click event on .list-group-item
        terminrahmen.click();
    }

    // The function to be executed
    $('.list-group-item').click(function() {
        alert($(this).text());
    });
});

当加载DOM时,我从URL参数中收集一些数据,并将数据与DOM元素进行比较。这部分工作正常。

之后我得到一个元素,我想触发一个click事件。 click事件应该“执行”指定的函数。

有人为我提供了一个好的解决方案吗?提前谢谢。

2 个答案:

答案 0 :(得分:2)

问题是您在将事件处理程序附加到它之前触发了click事件。所以你只需要在触发点击之前移动点击处理程序,一切都会按预期工作:

$(document).ready(function() {
    // The function to be executed
    $('.list-group-item').click(function() {
        alert($(this).text());
    });
    // I get the string tr from URL parameters
    var tr = "fix_LG%20GOLA%208M";
    if (tr !== null) {
        var terminrahmen = $('.list-group-item').filter(function() {
            return $(this).text() === decodeURI(tr).substring(4);
        });

        // Trigger click event on .list-group-item
        terminrahmen.click();
    }

});

JSFiddle

答案 1 :(得分:2)

http://jsfiddle.net/azg2R/2/

将click事件置于就绪事件的顶部。点击事件需要在注册事件 后触发 。它没有发生在

之前
$(document).ready(function() {           
    // The function to be executed
    $('.list-group-item').click(function() {
        alert($(this).text());
    });

    // I get the string tr from URL parameters
    var tr = "fix_LG%20GOLA%208M";
    if (tr !== null) {
        var terminrahmen = $('.list-group-item').filter(function() {
            return $(this).text() === decodeURI(tr).substring(4);
        });

        // Trigger click event on .list-group-item
        terminrahmen.click();
    }
});