2

phpで生成されるメニューがあり、その中に2つの異なる子divが含まれる可能性があります。簡単に言うと、phpは、「li」内に「showBubbles」というクラス名のdivを追加したり、「hideLogo」のクラスを持つ別のdivを追加したりします。「showBubbles」divが存在する場合は1つの関数を実行し、「hideLogo」が存在する場合は別の関数を実行する必要があります。マウスホバーでこれを行うにはどうすればよいですか?構造は次のようになります。

<ul>
<li>
    <a href="#"><img src="imagePlaceholder" /></a>
    <div class="showBubbles"></div>
    <div class="hideLogo"></div>
</li>
</ul>
4

6 に答える 6

6

テストされていませんが、これでうまくいくはずです。

$('ul').on('mouseover', 'li', function(e)
{
    if($(this).children('div').hasClass('showBubbles'))
    {
        // Execute code for showBubbles div
    }
    else
    {
        // Execute code if 'showBubbles' is not present
    }
}
于 2012-09-06T16:39:47.487 に答える
1

ホバーコールバック関数内では、次のコードを使用できます。

var showBubbles = $("li div.showBubbles").length;
if(showBubbles > 0){
   // first function here
}

var hideLogo = $("li div.hideLogo").length;
if(hideLogo > 0){
   // second function here
}
于 2012-09-06T16:41:29.150 に答える
0

特定のクラスのdivがjQueryで選択されているかどうかを確認してlengthから、返されたjQueryオブジェクトのを確認できます。たとえば、次の場合showBubbles

var showBubblesExists = $('li .showBubbles').length > 0;

私はこれがあなたに正しい解決策を示すべきだと信じています。

于 2012-09-06T16:40:44.750 に答える
0

以下のようにしてみてください、

var sb = 0, hb = 0;
$('li').hover(function () {
   sb = $('.showBubbles', this).length;
   hb = $('.hideLogo', this).length;

   if (sb) {  /*function for sb*/ }
   if (hb) { /*function for hb*/ }

}, function () {

   if (sb) {
     //function for sb 
     sb = 0;
   }
   if (hb) { 
     //function for hb 
     hb = 0;
   }
});
于 2012-09-06T16:41:01.870 に答える
0
$('ul').on('mouseover', 'li', function() {

   $(this).find('div.showBubbles').length && showBubbles(); //calls showBubbles()

   $(this).find('div.hideLogo').length && hideLogo(); //calls hideLogo()

});
于 2012-09-06T16:49:54.287 に答える
0

これを試して

JSコード

$('li').hover(function(){
    if($(this).find('.showBubbles')){
       showBubbles();
    }
    if($(this).find('.hideLogo')){
       hideLogo();
    }
});

function showBubbles(){
  alert('showBubbles response');
}

function hideLogo(){
  alert('hideLogo response');
}

JS FIDDLE CODE

于 2012-09-06T17:00:22.250 に答える