2017-11-09 7 views
0

私はプログラミングに慣れていますので、私にご負担ください。ボタンをクリックすると、別のHTMLファイルに移動しますが、もう一度クリックすると、以前にあった他のHTMLファイルには戻りません。基本的に私は2つの間で切り替えたい(または、私が追加のページを追加する場合はさらに)。jQueryシングルボタンをクリックすると2つのHTMLファイルが切り替わります

これを行うのはjQueryだけです。

$(".button").on("click", function() { 
    if(window.location.href = "index1.html"){ 
     window.location.replace("index2.html"); 
    } 

}); 

$(".button").on("click", function() { 
    if (window.location.href = "index2.html") { 
     window.location.replace("index1.html"); 
    } 
}); 

これは、このようなタスクでは複雑すぎるようです。どんな助けもありがとう!

+1

条件には、** ** **を比較するために二重等号( '==')を使用する必要があります。単一の等号**は**を割り当てます。三重等号( '===')を使用して、**型をさらに比較することもできます**。 –

+0

'私は2つの間でトグルしたい(それ以上のページを追加すると)" これは私には分かりません。 3つ以上のページのうちどれに切り替えるべきかを明確に定義することなく、2ページ以上を切り替えることはできません。トグルすると、実際に連続して移動するのですか?例えば。 Index2.html - > index3.html - >など? – damanptyltd

+0

不明なメッセージは申し訳ありませんが、はい。 index1.html、index2.html、およびindex3.htmlを持っている場合、クリックすると順番にそれらが順番に循環します。 index3.htmlで、ボタンをクリックすると、それが意味をなさない場合、index1.htmlに戻ります。 – anbhd

答えて

0

これら2つのコードブロックが同じファイル内にある場合、2番目のonclickイベントが最初のものを上書きしています。 window.locationでも、リダイレクトするだけで十分です。

この試してみてください:あなたの条件を明確にし、あなたの最近のコメントに基づいて

$(".button").on("click", function() { 
    if(window.location.href == "index1.html"){ 
     window.location="index2.html"; 
    }else if(window.location.href == "index2.html"){ 
     window.location="index1.html"; 
    } 
}); 
+0

@obsidian彼は同じエラーもしています。 @Eyzi条件で '=='を使用してください。 –

0

を、私はあなたがページの配列、およびループのために使用した同じイベントと次のページへの進捗状況を維持したいと考えています。

var pages = ['index1.html','index2.html','index3.html','index4.html']; 

$(".button").on("click", function() { 
    for(var i = 0; i < pages.length; i++){ 
     if(window.location.pathname == pages[i]){ 
      if(i == pages.length - 1){ 
       //at the end, go to first page 
       window.location.href=pages[0]; 
      } 
      else{ 
       window.location.href=pages[i+1]; 
      } 
      break; 
     } 
    } 
}); 

このコードをデバッグしてwindow.locationの値を確認しても、長いパスがある場合は期待通りではありません。これは、www.foo.com/some/path/index1.htmlのようなURLで動作させたい場合は、相対パス全体(some/path/index1.html)を配列に追加する必要があります。

関連する問題