$(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事件
最佳答案
$('#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/