2011-11-10 3 views
0

アムマウスがdiv要素の上に置いたときに削除アイコンを表示しようとして機能していないが、ホバーイベントは決して に動作しない。ここに私のコード この関数は、データホバーイベントが

function load_pheeds() 
    { 
     var request_url = url+'pheeds/latest_pheeds'; 
     var timeline = $('#pheed-timeline'); 
     var loading = '<div class="progress-indicator">Loading Pheeds....</div>'; 
     timeline.append(loading); 
     $.ajax({ 
      url:request_url, 
      type:'GET', 
      dataType:'json', 
      error:function() { }, 
      success:function(data) 
      { 
       if(data.message == null) 
       { 
        $('.progress-indicator').fadeOut('slow',function() { 
         $.each(data,function(index,pheed) 
         { 
          var del = ''; 
          if(pheed.owner == "yes") 
          { 
           del = '<a href="#" class="deletePheed" style="display:none;">Delete Pheed</a>'; 
          } 
          timeline.append(
           '<div class="pheed-holder" data-id="'+pheed.pheed_id+'" data-delete="'+pheed.owner+'">'+ 
           '<div class="user-profile-avatar"><img src="'+pheed.avatar_src+'" /></div>'+ 
           '<div class="useridentity" data-userid="'+pheed.user_id+'">'+ 
           '<a href="'+url+'users/info/'+pheed.username+'">'+pheed.username+'</a>'+ 
           '</div>'+del+ 
           '<div class="pheedContent">'+pheed.pheed+'</div>'+ 
           '<div class="pheedMeta">'+ 
           '<span class="timefield t:'+pheed.datetime+'000"></span>'+ 
           '<span class="comment-count">'+pheed.comment_count+'</span>'+ 
           '</div>'+ 
           '</div>' 
          ); 
         }); 
        }); 
       } 
      } 
     }); 
    } 

これは、イベントであるとのdivを表示しますハンドラ

$('div.pheed-holder').hover(function() { 
      $(this).children('.deletePheed').show(); 
      },function() { 
       $(this).children('.deletePheed').hide(); 
      }); 

イベントのDOMオブジェクトは、このような動的な場合ホバーイベントが

+1

[それは私のためにうまくいく](http://jsfiddle.net/Hqw7T/)おそらくあなたはラインのどこかでJavaScriptエラーが発生していますか?アンカーが実際にHTMLに挿入されていることを確認しましたか? – animuson

+1

'$(this)).find("。deletePheed ")' –

+0

@JamesJohnsonを試してみました – MrFoh

答えて

1

私は要素が追加される前に、あなたのホバー・ハンドラが設定されますと思いますか? 実行中にdiv.pheed-holderが存在しない場合、jQueryはハンドラを追加できません。

あなたのajaxレスポンス後に.hover(..., ...)を実行してみてください。代わりにlive()を使用してください。

0

を働くことはありません、あなたはを使用する必要がありますbindの代わりに(またはonを1.7にします)。

$('div.pheed-holder').live("hover", function() { 

あなたはlivemouseenterへとmouseleave個別の代わりhoverを使用してバインドする必要があります。

0

は、イベントまたは使用をバインドしてください:

$('div.pheed-holder').live('hover',function(){}); 
+1

ライブは1.7で嫌われています。代わりにon – tmjam

関連する問題