使用after引用的Jquery每个循环

slmsl1lt  于 2023-06-22  发布在  jQuery
关注(0)|答案(3)|浏览(164)

我想画一条从.class元素到class元素的画布线。到目前为止,我可以通过elements.first()和elements.first()引用类中的start和end元素。
困难的是,我想使用quadraticCurveTo,想要一个起点和终点。结束点是. class中的下一个元素。

$('.myclass').chainlines();
$.fn.chainlines = function(){
context.moveTo($(this).first().position().left+15,$(this).first().position().top+20);
$(this).each(function(){
next = $(this).next();
context.quadraticCurveTo($(this).first().position().left+60,
$(this).position().top+25,$(next).position().left+15,$(next).position().top+15);
});
};

我有一个jsfiddle的例子,我需要扩展成一个链。参见LINK
这对我没用

gcxthw6b

gcxthw6b1#

也许这就是你正在寻找的:

divs.each(function(){
   alert($(this).next().get(0).id);
})
yk9xbfzb

yk9xbfzb2#

小提琴似乎和你的问题无关。。
我想你在找这样的东西。

divs.each(function(idx){
    alert(divs[idx].next().attr("id"));
 })
aiqt4smr

aiqt4smr3#

我解决了自己的问题

$.fn.chainlines = function(){
    var divs = $(this);
    var count = $(this).length;
    for (var i = 0; i < count; i++) {
        if((i + 1) < count){
            context.moveTo($(divs[i]).position().left+15,$(divs[i]).position().top+20);
            context.quadraticCurveTo($(divs[i]).position().left+60,
                                 $(divs[i]).position().top+35,
                                 $(divs[i+1]).position().left+15,
                                 $(divs[i+1]).position().top+1);      
            context.stroke();
        }
    }
};

相关问题