2016-04-21 10 views
2

Ich habe eine Post-Index-Seite.jquery iterierende Sammlung mit

Wenn Sie auf den Kommentarkommentar eines bestimmten Posts klicken, werden die Kommentare des Beitrags sichtbar. Dies ist einfach, da ich this dann find basierend auf der Klickposition verwenden kann.

//open hidden post comments and replies in post thread 
$(document).on('click', '.open-all-post-comments', function (event) { 
    var post_id = $(this).data('pid'); 
    var all_replies = $('#post_' + post_id).find('.post-comment-replies:has(.post-comment-reply)'); 
    all_replies.show(); 
    $(this).closest('.open-all-post-comments-row').hide(); 
}); 

nun auf Seite Last würde Ich mag den Drop-Down redigieren sichtbar für die Beiträge machen, wo der Post Autor der aktuelle Benutzer ist. Ich kann nicht herausfinden, wie ich durch alle Beiträge auf der Seite gehen soll, überprüfe, ob die angegebenen Daten attr gleich der ID des aktuellen Benutzers sind, und mache das Dropdown sichtbar, wenn dies der Fall ist.

Hier ist der Code, den ich im Moment habe. Wie sollte ich es ändern, damit es funktioniert?

//checking all posts on the page and show the dropdown if user is the post author 

$(document).on("page:change", function() { 
    if ($('.post-container').length > 0) { 
    if ($('.edit-post-dropdown-button').data('postauthorid') == $('#bodycurrentuser').data('currentuserid')) { 
     $('.edit-post-dropdown-button').removeClass('hidden'); 
    }; 
    }; 
}); 

_POST Teil (Einzel Post html)

<div class="panel panel-default post-panel" id="post_<%= post.id %>"> 
    ........ 
    <li class="dropdown edit-post-dropdown-button hidden" data-postauthorid ="<%= post.user_id%>"> 
    ...... 
    </li> 
</div> 
+0

Sie vermissen einen '$' 'vor (document)' ' – callback

+1

$ .each' Funktion –

+0

als u_mulder gesagt, Sie' $ .each' Funktion verwenden, sollten durch die posts.If Sie mehr brauchen iterieren detaillierte Antwort zeigen Sie Ihre HTML so können wir Ihnen helfen –

Antwort

2

Versuchen durch jede post.I laufen konnte es nicht testen, aber so etwas wie dies funktionieren sollte:

$('.post-panel').each(function(index) { 
     if ($(this).find('.edit-post-dropdown-button').data('postauthorid') == $('#bodycurrentuser').data('currentuserid')) { 
      $(this).find('.edit-post-dropdown-button').removeClass('hidden'); 
      } 
}); 
+0

Thx George, ich habe es geschafft. –

1

Sie tatsächlich don Wenn Sie den gesamten Post der Seite durchgehen müssen, müssen Sie diesen Artikel auswählen, wobei postauthorid === currentuserid.

+0

Francesco, dieser funktioniert nicht, da es mehr Posts von demselben Benutzer auf derselben Seite gibt. Oder habe ich etwas vermisst? –

+0

ok, dann hast du Recht, aber es ist einfach, auf weitere Beiträge zu erweitern, ich werde es für dich aktualisieren –

+0

Danke Francesco, kann es kaum erwarten, es zu sehen! –