0

我正在使用 impress.js 进行演示,而不是将其用于花哨的东西,我只希望幻灯片彼此相距 900 像素。我可能需要根据演示文稿的长度添加/删除幻灯片,而不是更改每个 data-y 值,我想使用 jQuery 循环遍历我的每张幻灯片并在每个幻灯片位置添加 900px。这是我正在使用的 jQuery:

var counter = 0;
$('.slide').each(function(){
    var posY = counter * 900;
    $(this).attr("data-y", posY);
    counter++;
});

但它不会将值添加到我的 html 中的 data-y 属性中。我相信代码是正确的,我只是不确定为什么它不起作用。

4

2 回答 2

2

尝试使用data()函数更改数据值

$(this).data("y", posY);

从文档

HTML5 data-* Attributes

从 jQuery 1.4.3 开始,HTML 5 的数据属性将被自动拉入 jQuery 的数据对象中。jQuery 1.6 中对嵌入破折号的属性的处理进行了更改,以符合 W3C HTML5 规范。

于 2014-06-05T15:53:34.787 回答
1

要在更少的代码中执行此操作,请使用每个循环的索引作为乘数

$('.slide').each(function(i){
    var posY = i * 900;
    $(this).data("y", posY);
});
于 2014-06-05T15:58:26.380 回答