2016-11-08 12 views
0

カルーセルスライドにクラスactiveがある場合、イベントのリンクにクラスhoverを追加する関数を呼び出そうとしています。アクティブなクラスは、各項目を繰り返し、オンとオフを切り替えます。しかし、私が選択したイベントハンドラon()は、この機能が実行されないようにしています。アイテムがアクティブなときにクラスを追加するにはどうすればよいですか?イベントハンドラでアクティブクラスのjquery関数を呼び出す

<div class="carousel"> 
    <div class="item"><a id="link1"></a></div> 
    <div class="item"><a id="link2"></a></div> 
    <div class="item active"><a id="link3"></a></div> 
</div> 


// if slide active, add class hover to the link 
var test = jQuery('.hover'); 
function linkHover(){ 
    if(jQuery('.item.active').length != 0){ 
    jQuery('#link3').addClass('hover'); 
    } 
}; 

jQuery(test).on('trigger', linkHover); 
+0

のように試してみてください。(jQueryの'で 'あなた' jQuery' test).on( 'trigger'、linkHover); 'no need' jQuery' – guradio

+0

最初にアタッチするクラスが "hover"の要素がなかったので、トリガハンドラは呼び出されません。 – elfan

+0

「アクティブ」クラスをスライドに追加するイベントとは何ですか?あなたがそれにアクセスできるなら、そこに "ホバー"クラスを設定することができます。聞くことができる「トリガ」イベントはありません。 – H77

答えて

0

私はあなたがこれよりも難しいと思っています。カルーセル上のスライドを切り替えるために呼び出される関数があるはずです。その関数内だけ追加します。

$('.item').each(function() { 
    $(this).removeClass('hover'); 
    $('.item.active').addClass('hover'); 
}); 
0

// if slide active, add class hover to the link 
 
var test = $('.active'); 
 
function linkHover(){ 
 
    if($('.item.active').length != 0){ 
 
    $('#link3').addClass('hover'); 
 
    } 
 
}; 
 
linkHover();
.hover{color:red}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="carousel"> 
 
    <div class="item"><a id="link1"></a></div> 
 
    <div class="item"><a id="link2"></a></div> 
 
    <div class="item active"><a id="link3">1</a></div> 
 
</div>
はVARテスト= jQueryの( 'ホバー') `でこの

関連する問題