我试图为我的网页设置一个弹出窗口。它在第一次点击时对我没有用,但是之后工作正常。我意识到它会在第一次点击时被实例化,因此不会显示出来。有没有更好的方法来实例化它,因为我使用的是运行时生成的id。我看过类似的问题,但它们似乎并不适合我。这是我写的代码,
<table id="userInfo">
<thead>
<tr>
<th>UserGroup</th>
</tr>
</thead>
<tbody>
<% @userdetails.each do |user| %>
<tr>
<td>
<a class='user_show_more' data-placement='left' id='<%= user %>'>[+]</a>
<!-- popover table starts here -->
<div id="<%= user %>_popover" style="display: none">
<table>
<thead>
<tr>
<th>UserNames</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<%= user['name'] %>
</td>
</tr>
</tbody>
</table>
</div>
<!-- popover ends here -->
<% user['group'] %>
</td>
</tr>
<% end %>
</tbody>
</table>
我的javascript代码看起来像这样,
$('.user_show_more').on('click', function (e) {
var $this = $(this)
var popover_id = '#'+$this.attr("id");
$(popover_id).popover({
html : true,
content: function() {
var popover = '#'+$this.attr("id")+'_popover';
return $(popover).html();
}
});
});
答案 0 :(得分:2)
您可以在弹出式窗口中添加两个点击处理程序。第一个使用&#39;一个&#39;第二个使用&#39;。
https://jsbin.com/kegovebufu/1/edit?html,js,console,output
HTML
CtClass clazz = ...
byte[] classFile = clazz.toBytecode();
HotSwapper hs = new HostSwapper(8000); // 8000 is a port number.
hs.reload("Test", classFile);
的Javascript
<button type="button"
class="btn btn-lg btn-danger"
data-toggle="popover"
id="Temp"
>Stuff</button>
<script type="text/html" id="Temp_popover">
<div>
<table>
<thead>
<tr>
<th>UserNames</th>
</tr>
</thead>
<tbody>
<tr>
<td>blah</td>
</tr>
</tbody>
</table>
</div>
</script>