javascript - 在JQuery中制作HTML对象后触发事件

标签 javascript jquery html

我希望在创建相应的 HTML 对象(在我的例子中为 href)后触发一个事件。

我写了这段代码:

$(document).ready(function() {
    $('body').on('click', '#stats-link', function(e) {
        console.log('TRIGGERED'); // nothing is logged
        e.preventDefault();
        $.post('stats.php', {'email': $('#email').val()}, function() {
            window.location = $(this).attr('href');
        });
    });

    $('#submit_button').click(function(e) {
        e.preventDefault();
        ...
        $('#info').html('<p class="desc"><a href="stats.php" id="stats-link">bla bla bla</a></p>');
        ...
    });
});

所以,我在#submit_button函数中创建了一个由stats-link标识的href对象,然后我希望他在相应的函数(即 $('body').on(...),但它没有发生。我做错了什么?

最佳答案

你错过了这一行吗:

$('#stats-link').trigger('click');

这将触发点击事件。您共享的代码仅绑定(bind)事件。您需要触发它。

JS:

$(document).ready(function () {
    $('body').on('click', '#stats-link', function (e) {
        e.preventDefault();
        alert('clicked')
        $.post('stats.php', {
            'email': $('#email').val()
        }, function () {
            window.location = $(this).attr('href');
        });
    });

    $('#submit_button').click(function (e) {
        e.preventDefault();
        $('#info').html('<p class="desc"><a href="stats.php" id="stats-link">bla bla bla</a></p>');
        $('#stats-link').trigger('click'); //This is where you trigger the click.
    });
});

工作演示:http://jsfiddle.net/lotusgodkk/artaq4xj/

关于javascript - 在JQuery中制作HTML对象后触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26503721/

相关文章:

javascript - Chrome 切换到串行下载脚本

javascript - 从字符串数组中过滤对象数组

jquery - 为什么我的 jQuery 对话框在按下 Enter 键时会重新加载页面?

php - Laravel 5.1 ajax get 请求需要更长的时间来加载页面

javascript - 将数字结果添加到 NaN

css - 麻烦的导航栏问题(HTML 和 CSS)

javascript - 如何使用javascript正则表达式从字符串中删除字符

php - 显示 php 和 javascript 在 FF 和 Chrome 中无法正常工作的警报错误

Internet Explorer 7 中的 jQuery 1.6.4 克隆问题

html - 如何让 Bootstrap 固定导航栏不是全宽,顶部有横幅