2

我有一個與id="<%= p.id %>"(在模式中的帖子的ID)的模態。我想在模式打開的時候使用模式的內容(並且我需要在.js文件中執行此操作)。但是,我怎樣才能從打開的模態id到JavaScript?如何從開放引導模式獲得'id'?

我已經嘗試使用JavaScript代碼,但它不起作用。有什麼建議麼?

_singlePost.html.erb

<a class="fg" href="#<%= p.id %>" data-toggle="modal"> 
    <div id="withJosefin"> 
     <%= p.title %> 
    </div> 
</a> 

<div id="<%= p.id %>" class="modal hide" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-header"> 
     <p><h3 id="myModalLabel"><%= p.title %></h3></p> 
    </div> 
    <div class="modal-body"> 
     <%= raw(p.link) %> 
    </div> 
</div> 

pages.js.coffee

$ -> 
    if ('div.modal.hide.in').is(":visible") 
    currentId = $('.modal.fade.in').attr('id') 
    //Do something with currentId here 
+0

我看不出有任何的jQuery代碼在這裏 –

+0

@roasted - 它與jQuery coffeecrap撒! – adeneo

+0

@adeneo我不知道,thx的輸入! –

回答

2

documentation發現這一點:

您可以創建一個回調時態如下所示:

$('#myModal').on('shown', function() { 
    // do something… 
}) 

你的情況,你會這樣:

//Somewhere in the beginning of your coffeescript/javascript before the modal is opened by the user. 

//CoffeeScript 
$("div.modal.hide").on "shown", -> 
    id = $(this).attr('id') 
    //Do whatever you want with the id 

//javascript 
$('div.modal.hide').on('shown', function(){ 
    var id = $(this).attr('id'); 
    //Do whatever you want with the id 
}); 

希望幫助

+0

YES!謝謝!它的工作:) – allegutta

+2

請注意,您應該使用'on。('shown.bs.modal')'而不是'('顯示')'引導程序3 – HussienK