DEMO

$(document).ready(function () {
    $(document).on('click', '.btn1', function (e) {
        var qwe = $(this).data('id');
        var asd = $(this).data('table');
        console.log(qwe);
        $('#btn2').attr('data-id', qwe);
        $('#btn2').click();

    });
    $("#btn2").click(function (e) {
        e.preventDefault();
        var q = $(this).data('id');
        var a = $(this).data('table');
        console.log(q);
        func1(q, a);
    });
});

function func1(data, value) {
    $('#text').val(data);
}


我这里有3个按钮;即btn1,btn1.1,btn2。 btn1和btn1.1共享同一类btn1我在btn1类上有一个click事件。在btn1 click事件上,我使用data-id获取btn的$(this).data('id');,然后将其设置为btn2中的相同attr,例如$('#btn2').attr('data-id', qwe);。单击btn2时,我运行一个用于设置输入值的函数。

我的问题是这样的,当我单击btn1时,数据ID传递到btn2上,我可以看到它在开发工具中发生了变化。当我再次在btn1.1中单击时,数据ID仍会传递到开发工具中的btn2上,但在输入值中不会更改。

为什么会这样呢?如何解决?

UPDATED FIDDLE

更新了小提琴检查btn2中的click事件

最佳答案

DEMO

使用data()本身使用以下设置值。

$('#btn2').data('id', qwe);


您不能使用attr()设置data,因为data-id不是元素的有效属性。

但是,如果使用prop()而不是attr(),它将起作用。

$('#btn2').prop('data-id', qwe);

关于javascript - 将data属性设置为button并更改所述attr jquery的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32710145/

10-08 22:41