javascript - jQuery 获取数据属性不起作用

标签 javascript jquery html

我有一个脚本,可以生成多个带有类的按钮,我希望它在单击时提醒数据属性,但它不起作用。

这是 HTML 的输出

<button class="request box-button" data-value="18492500814">Request</button>

jQuery 代码

$(document).ready(function(){
    $('.request').each(function () {
        var photoID = $(this);
        photoID.click(function () {
            alert($(this).data('value'));
        });
    });
});

最佳答案

由于页面加载时您的元素不存在,因此事件不会绑定(bind)到它们。通过使用事件委托(delegate)解决这个问题:

$(document).ready(function(){
    $(document).on('click','.request', function () {
            alert($(this).data('value'));
    });
});

JS Fiddle demo具有动态生成的元素

注意:这里,我使用了 $(document).on() 因为我没有您的页面结构。但是,如果您将按钮插入 HTML 中已存在的容器中,请改用:$('#myContainer').on()。它不会很明显,但对于性能来说这是最好的。

关于javascript - jQuery 获取数据属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31410412/

相关文章:

javascript - 使用 Angular 和 Javascript 翻转一个 div 并显示不同的内容

jquery - 为什么我的 jquery not 选择器不起作用

javascript - CSS3 内容中的 HTML 值

javascript - 每天用另一张图片替换一张图片 (.jpg) 的脚本?

javascript - Safari 扩展 : WebSocket connection failure calls onclose and not onerror and no exception

jQuery width() 方法性能

java - 如何从 PHP 生成的 HTML 页面中获取正文内容?

javascript - JS : Determinining image dimensions only partially successful

JavaScript 顶部和左侧位置未按预期工作

jquery - 使用 jLayout 保持容器的宽度和高度