0

Ich benutze das Lesbare Gem, und habe Kommentare in einem Modal. Ich möchte einen Kommentar nur als gelesen markieren, wenn der Benutzer das Bootstrap-Modal öffnet. Kann mir jemand in die richtige Richtung zeigen, den Kommentar nur dann als gelesen auszulösen, wenn der Benutzer das Modal öffnet? Momentan markiert es den Kommentar als gelesen, bevor das Modal sogar offen ist, weil ich glaube, dass es den Code ausführt, ohne dass der Benutzer das Modal öffnet.Schienen, Bootstrap Modal, Trigger-Code auf Modal geöffnet

<script> 
    $(('#picModal-<%= index %>').hasClass('show'), function(){ 
    "<% comment.mark_as_read! for: current_user %>"; 
    }); 
</script> 

Antwort

0

Hören Sie auf das auf Show-Event des modal, wie

$('##picModal-<%= index %>').on('shown.bs.modal', function (e) { "<% comment.mark_as_read! for: current_user %>"; //do something else! })

0

Sagen wir Ihnen eine CommentsController haben.
In der Update-Aktion setzen Sie die comment.mark_as_read!

$('#picModal').on('shown.bs.modal', function(e){ 
     // Set ajax patch to the 'comments#update' with the comment id 
    }) 

Dieses Ereignis wird ausgelöst, ging die modale

+0

ich die Dokumentation gelesen haben gezeigt ... Ich bin nur nicht sicher, wo der Fehler ist ... mit meinem Code in meinem ursprünglichen Beitrag, die „<% comment.mark_as_read! for: current_user%> "; feuert, auch wenn das Modal nicht geöffnet ist ... das versuche ich herauszufinden. – gitastic

+0

Ich denke, das ist getan, wurde die gesamte Seite gerendert. Ich würde vorschlagen, einen Endpunkt für ajax update zu erstellen und es aus dem Ereignisblock über Ajax zu tun. – Anton