0

スライダー(iscrollで作成)からスライドを動的に削除する必要がありますが、スライダーを「更新」できるようにするか、元のスライドをすべて元に戻す必要もあります。

これを行うにはどうすればよいですか?

html は次のようになります。

<div id="wrapper">
    <div id="slider>
        <div id="job-container1"><!-- slide 1 content here--></div>
        <div id="job-container2"><!-- slide 2 content here--></div>
        <div id="job-container3"><!-- slide 3 content here--></div>
    </div>
</div>

js コードを使用して、3 枚未満のスライドに相当する情報がないかどうかを判断するため、残りのスライドを削除する必要があります。

if(savedJobs.length === 1){
    $('#job-container2, #job-container3').remove()
    $('#slider').css('width','100%')
}else if(savedJobs.length === 2){
    $('#job-container3').remove()
    $('#slider').css('width','200%')
}else if(savedJobs.length >2){
    //todo: check if its the last in the array also
}

単純に div を非表示にしようとしましたが、myscroll.refresh() が呼び出されてもスライダーは空白のスライドにスクロールします

4

1 に答える 1

1

使用.detach:

var containers = $('#job-container2, #job-container3');

if(savedJobs.length === 1){
    containers.detach()
    $('#slider').css('width','100%')
}else if(savedJobs.length === 2){
    $('#job-container3').detach()
    $('#slider').css('width','200%')
}else if(savedJobs.length >2){
    //todo: check if its the last in the array also
}

それらをキャッシュして後で再挿入するのが最善の方法であるかどうかはわかりませんが、jQuery は を使用しdocumentてトラバースし、 から削除するため、それらへの参照を保存する必要がありますdocument

于 2013-08-06T15:53:37.043 に答える