イベントを設定する

デフォルトではタブをクリックすると内容が切り替わります。これはクリックイベントで切り替えが行われるように設定されているためです。Yahoo! UI Libraryのタブ機能は自由にイベントを設定することができるため、タブ上にマウスが乗ったときに処理を行わせることもできます。まず、イベントを設定したいタブオブジェクトを取得する必要があります。タブオブジェクトのgetTab()メソッドを使うとタブの情報を取得できます。パラメータには参照番号(インデックス番号)を指定します。参照番号は最初に定義されたタブが0番になり、以後1ずつ増えていきます。getTab(0)とすると最初のタブ情報を取得することができます。

取得したタブのset()メソッドを使いイベントを設定します。set()の最初のパラメータには"activationEvent"を指定し、2番目のパラメータにイベント名を指定します。このイベント名はonclickではなくclickのように指定します(onは不要)。set("activationEvent", "mouseover")とするとマウスの乗った時にタブ内容が切り替わるようになります(サンプル06)。

サンプル06の実行結果

マウスが乗った時にタブが変わる

サンプル06

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8">
        <title>YUIタブビューサンプル</title>
        <link rel="stylesheet" type="text/css" href="css/tabview.css"> 
        <link rel="stylesheet" type="text/css" href="css/border_tabs.css"> 
        <link rel="stylesheet" type="text/css" href="css/main.css"> 
        <script type="text/javascript" src="js/yahoo-dom-event.js"></script> 
        <script type="text/javascript" src="js/element-beta.js"></script> 
        <script type="text/javascript" src="js/connection.js"></script> 
        <script type="text/javascript" src="js/tabview.js"></script> 
        <script type="text/javascript"><!--
            window.onload = function() {
                var tabObj = new YAHOO.widget.TabView("myTab");
                tabObj.getTab(0).set("activationEvent", "mouseover");
                tabObj.getTab(1).set("activationEvent", "mouseover");
            }
        // --></script>
    </head>
    <body>
    <h1>YUIタブビューサンプル(イベント設定)</h1>
    <div id="myTab" class="yui-navset">
        <ul class="yui-nav">
            <li class="selected"><a href="#tab1">タブ1</a></li>
            <li><a href="#tab2">タブ2</a></li>
        </ul>
        <div class="yui-content">
            <div><p>タブ1の内容です。マウスオーバーで切り替わります。</p></div>
            <div><p>タブ2の内容です。簡単にタブインターフェースが実現できます。</p></div>
        </div>
    </div>
    </body>
</html>