実装したいこと
html
1■index.php 2<ul> 3<li><a href="/1.php"><img src="images/img1.jpg"></a></li> 4<li><a href="/2.php"><img src="images/img2.jpg"></a></li> 5<li><a href="/3.php"><img src="images/img3.jpg"></a></li> 6<li><a href="/4.php"><img src="images/img4.jpg"></a></li> 7</ul>
例えば、img1.jpgのリンクをクリックしたら
<li><a href="/1.php"><img src="images/img1-active.jpg"></a></li> に画像パスを書き換え、ページに戻ってきても「img1-active.jpg」のままにしたいです。 ### 使用js jquery 3.4.1 jquery.cookie.js 1.4.1試したこと・不明点
js
1$.cookie("test", 0, { expires: 1 }); 2var hoge = $("ul li a"); 3 4function check(){ 5 var hoge_img = hoge.children("img").attr("src"); 6 if($.cookie("test") == 1) { 7 var hoge_change = hoge_img.replace(".jpg", "-active.jpg"); 8 hoge.children("img").attr("src", hoge_change); 9 } 10}; 11 12$("ul li a").on("click", function(){ 13 $.cookie("test", 1); 14 check(); 15});
上記のコードを記述したのですが、
まず画像をクリックすると全ての画像パスが変わってしまいます。
これは「function check()」の中で<li>の画像パス全てを参照してしまっているのが原因なのはわかるのですが、
この中で$(this)を使えないので解決策が思い浮かびません。
次に、cookie”test”を、ボタンクリックで0から1に値を上書きしているのですが
ページを更新するともとに戻ってしまいます。
こちらも、原因は一行目のcookieをセットする記述があるからだとはわかるのですが
ではどこに記述すれば・・・?と悩んでおります。
上記の記述からどう変えていけばうまく動作するのか、アドバイスをお願いいたします。
※関係ないとは思いますが、まだサーバにアップする前でMAMPを使用してローカルで作業しています。