2017-06-03 9 views
0

スライダを作りたいと思います。私は2つのdiv、左矢印と右矢印を持っています。Jqueryをトグルする複数の関数

私の考えは、左または右の矢印をクリックすると、アクティブなdivが非表示になり、他のビューが表示されるということです。
toggle()でこれを行い、最初のビューを非表示にしますが、2番目のビューは表示されません。

これは、カルーセルのように円滑に進む必要があります。ここで

は私のjQueryのです:ここでは

$("#test2").hide(); 

$("#left").click(function(){ 
    $("#test1").toggle("slide", function(){ 
    $("#test1").show(); 
    $("#test2").hide(); 

    }, function(){ 
    $("#test2").show(); 
    $("#test1").hide(); 
    }); 
}); 

は、HTMLの例である:あなたのJavaScriptが間違っているよう

<div class="row"> 
    <div id="left></div> 
    <div id="test1">image + text</div> 
    <div id="test2">image + text</div> 
    <div id="right"></div> 
</div> 
+0

コールバック*(関数 "B")*で関数 "A"とまったく逆の関数を呼び出しています*そして、 'show()'と 'hide()'のかっこの間にはミリ秒単位の遅延はありません。あなたは何もせずに結果として何を期待していますか? "二重否定"について聞いたことがありますか? –

答えて

1

が見えます。

デモリンク

Working JSFiddle example

HTML

<div class="row"> 
    <div id="left">LEFT</div> 
    <div id="test1">image + text 1</div> 
    <div id="test2">image + text 2</div> 
    <div id="right">RIGHT</div> 
</div> 

はJavaScript

var $test1 = $("#test1"); 
var $test2 = $("#test2"); 

$("#test2").hide(); 

$("#left").click(function() { 
    toggleViews($test2, $test1); 
}); 

$("#right").click(function() { 
    toggleViews($test1, $test2); 
}); 

function toggleViews(viewToHide, viewToShow) { 
    $(viewToHide).hide("slide", function() { 
    $(viewToShow).show("slide"); 
    }); 
} 
:あなたがなりたい場所の変更は、以下のあなたを取得する必要があります
+0

これは機能しましたが、矢印ごとに1回だけクリックできます。左矢印で何度もクリックすることはできません。最初の試行でのみ動作します。 –

+0

このスクリプトは、各方向の1回のクリックに対してのみ動作します。 –

+0

@Spirit_Scarletあなたは出発点を得て、要素間のスムーズな移行方法を実証したいと考えていました。 2つのdivの間に入るだけですが、[data-attributes](https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes)を使用すると、かなり簡単に展開できます。 –

2

「トグル」の仕組みは次のとおりです。
この例では、「there」(要素に適用されている)または存在しないCSSクラスを切り替えることを示しています。

HTML:

<div class="row"> 
    <div id="left></div> 
    <div id="test1">image + text</div> 
    <div id="test2" class="hidden">image + text</div> 
    <div id="right"></div> 
</div> 

はCSS:

.hidden{ 
    display:none; 
} 

JS:

$("#left, #right").click(function(){ 
    $(".row div[id^='test']").toggleClass("hidden"); 
}); 

^=オペレータは、 "で始まる" を意味します。

関連する問題