くろひょうのwebデザインのお勉強帳

フェリカテクニカルアカデミー web制作科の受講生です。授業の要点、復習でつまづいた点などを記録し、レベルアップに励みます。

クリエイターになるための、お勉強の記録帳

[jQuery]クリックイベント

クリックイベント click()

 $(’セレクター’).click( function ( ) {
   セレクターで指定した要素がクリックされたときに実行する処理内容
 }

 

☆属性に含まれるものを .(ドット)でつなげられる。

この方法では、画像のalt属性を変更できるのが特徴。JavaScriptの画像置換ではalt属性までは変更できない。

attr():attribute(属性)の省略形

 

【演習1】ボタンを押すと画像が変わる仕組み

f:id:pleasure10501:20150413144242p:plain

<button>画像を変更</button>
<p class="flower"><img src="img/flower.jpg" alt="花"></p>
ーーーーーーーーーーーーーーーーーー

$( document ).ready ( function( ) {
 $( 'button' ).click( function( ) {
     $( 'img' ).attr ( 'src', 'img/sea.jpg' ) .attr ( 'alt' , '海' );
     } ) ;
} ) ;
ーーーーーーーーーーーーーーーーーー

<style>
button {
  cursor: pointer;
  }
</style>

※ ボタンにカーソルを置いたときにポインターに変更している

 

【演習2】ボタンを押すと画像2つとも変わる仕組み

f:id:pleasure10501:20150413144518p:plain

      ↓ ↓ ↓ 実行後

f:id:pleasure10501:20150413144621p:plain

☆画像それぞれにclass(又はid)をふるのがポイント

$(document).ready(function() {
 $('button').click( function() {
     $('p.flower img').attr('src', 'img/sea.jpg') .attr('alt','海');
     $('p.kurage img').attr('src', 'img/building.jpg') .attr('alt','ビル');
     });
});

<button>画像を変更</button>
<p class="flower"><img src="img/flower.jpg" alt="花"></p>
<p class="kurage"><img src="img/jellyfish.jpg" alt="海月"></p>

<style>
button {
  cursor: pointer;
  }
</style>

※$(’セレクター’)は$('p.flower img')と、親子セレクターを使う。jQueryでは厳密に指定する事

 

【演習3】リンクをクリックすると下の画像が置き換わる仕組み

f:id:pleasure10501:20150413143821p:plain

☆a要素をクリックした瞬間に、ページが変わって画像が表示されてしまうので
 その回避をどうするかがポイント

方法⑴ a要素のhref属性に「javascript: void(0)」と設定 ⇒a要素の機能が無効になる
方法⑵推奨 clickイベントの最後に「return false ; 」を追加する
    ⇒jQueryの命令だけが実行され、href属性のリンク先には移動しない。

 

<ul>
    <li><a href="img/flower.jpg">花</a></li>
    <li><a href="img/sea.jpg">海</a></li>
    <li><a href="img/jellyfish.jpg">くらげ</a></li>
    <li><a href="img/building.jpg">建物</a></li>
    </ul>
    <p><img src="img/flower.jpg" alt="花"></p>

<script>
$(document).ready( function() {
  $('a:eq(0)').click(function() {
   $('img').attr('src','img/flower.jpg').attr('alt','花');
    return false;
      });
  $('a:eq(1)').click (function() {
   $('img').attr('src','img/sea.jpg').attr('alt','海');
    return false;
  });
  $('a:eq(2)').click (function() {
   $('img').attr('src','img/jellyfish.jpg').attr('alt','くらげ');
    return false;
  });
  $('a:eq(3)').click (function() {
   $('img').attr('src','img/building.jpg').attr('alt','建物');
   return false;
  });
});
</script>