0

jquery にはかなり新しいので、これは「本当に男」タイプの質問になる可能性があります。しかし、1 つに結合したい 2 つの関数があるとしますが、わずかな違いがあります。

function rotateImage(){

var currentPhoto = $("#photo_slideshow .current");  
var nextPhoto = currentPhoto.next();

if(nextPhoto.length == 0){
nextPhoto = $("#photo_slideshow div:first");
}

}

function rotateImage2(){

var currentPhoto = $("#photo_slideshow .current");  
var nextPhoto = currentPhoto.prev();

if(nextPhoto.length == 0){
nextPhoto = $("#photo_slideshow div:last");
}
}

2 つの関数を組み合わせてコードを圧縮する方法が必要です。助けてくれてありがとう!

4

3 に答える 3

0

function.something内に引数を指定する必要があります。これにより、nextが呼び出されるかpreviousが呼び出されるかが決まります。次のようにします。

function rotateImage(side){

var currentPhoto = $("#photo_slideshow .current");  
if(side=="next"){
var nextPhoto = currentPhoto.next();
if(nextPhoto.length == 0){
nextPhoto = $("#photo_slideshow div:first");
}
if(side=="prev")
{
var nextPhoto = currentPhoto.prev();
if(nextPhoto.length == 0){
nextPhoto = $("#photo_slideshow div:last");
}
}

rotateImage("next")呼び出し中:前の使用のための次の使用のためrotateImage("prev")

于 2013-01-31T08:54:06.577 に答える
0
function rotateImage(which, pseudoSelector) {

    var currentPhoto = $("#photo_slideshow .current");  
    var nextPhoto = currentPhoto[which]();

    if(nextPhoto.length == 0){
        nextPhoto = $("#photo_slideshow div:" + pseudoSelector);
    }

}


rotateImage('next', 'first');
rotateImage('prev', 'last');
于 2013-01-31T08:58:14.650 に答える
0
function rotateImage(side){
var isNext = side == 'next';

var currentPhoto = $("#photo_slideshow .current");  
var nextPhoto = isNext ? currentPhoto.next() : currentPhoto.prev();

if(nextPhoto.length == 0){
nextPhoto = $("#photo_slideshow " + (isNext ? "div:first" : "div:last"));
}}
  • 次に回転するには、 rotateImage('next')を使用します。
  • rotatImage()、rotateImage('prev')、またはrotateImage()を使用して、前に回転します。
于 2013-01-31T09:16:06.207 に答える