2010-06-12 3 views
0

Essayé de faire http://davidwparker.com/2008/09/17/site-wide-announcements-in-rails-using-jquery-jgrowl/JS et Rails annonces à l'échelle du site

Suis vraiment mauvais avec JS. Pensez que je me trompe sur la dernière partie où il est dit "Ce code va dans votre fichier application.js (quelque part dans $ (function) {// ici})"

Je ne suis pas supposé faire un link_to_function et créer une fonction avec ce code qui fait référence à ce lien?

Vraiment perdu sur celui-ci.

Mis à jour -

application.js ressemble

$(document).ready(function() { 
    $.jGrowl.defaults.closer = true; 
     $("#announcements_box").css("display", "none"); 
     $("#announcements_box .announcement").each(function(){ 
     $jQuery.jGrowl(this.textContent,{ sticky:true, close:function(e,m,o){hide_announcements();} }); 
     }); 

}); 

function hide_announcements(){ 
    $.get(
     '/hide_announcements' 
    ); 

    $("#announcements_box").fadeOut(); 
    return false; 
    } 

Et mon application.html.erb a

<% unless current_announcements.empty? %> 
<div id="announcements_box"> 
<% for announcement in current_announcements %> 
    <div id="announcement_<%= announcement.id.to_s %>" class="jGrowl"> 
    <%= announcement.message %> 
    <%= link_to "Hide Annoucements", hide_announcements_path, :id => 'hideAnn'%> 
    </div> 
<% end %> 
</div> 
<% end %> 

Répondre

0

Et le coupable était je seulement entré un ID de div quand j'avais besoin d'avoir un ID de div et classe.

0

Je ne suis pas sûr de ce que signifie la notation $(function){ //here }, qui devrait donner vous erreur dans le navigateur, mais je pense qu'il veut juste exécuter du code après que la page est chargée:

$(document).ready(function() { 
    // here 
} 
+0

c'est ce que je pensais aussi, mais il se cache réellement sur la charge du document (à moins que le "affichage", "aucun" est en arrière). – pcasa