#ruby-on-rails #ruby-on-rails-3 #internet-explorer
#ruby-on-rails #ruby-on-rails-3 #internet-explorer
Вопрос:
Вот простой цикл, написанный на .html.erb
.
Для каждого portfolio_item
мы создаем поле в сетке из 3 столбцов. Обратите внимание, что <div class="portfolioOptions">
это скрыто, но появляется onmouseover
, покрывая <span id="title">
.
В IE 7, 8 и 9 для каждого @portfolio_item
я получаю поле, за которым следует второе пустое поле!. Даже HTML-код IE отображает только одно окно.
<div class="gridRow">
<% @portfolio_items.each do |item| %>
<%= link_to params.except(:controller,:action).merge(:controller=>"portfolio_items", :action=>"show", :id=>item.id) do %>
<div class="boxHalf portfolioBox" id="<%= item.id %>">
<div class="portfolioItem">
<% if item.url.present? amp;amp; item.url_type == "vid" %>
<%= item.vid_thumb.html_safe %>
<% else %>
<%= image_tag item.item.url(:medium) %>
<% end %>
<div class="text" title="<%= item.title %>">
<span id="title_<%= item.id %>"><%= item.title %></span>
<div class="portfolioOptions" id="option_<%= item.id %>">
<%= link_to 'Show', item, :class=>"blueButton" %>
<%= link_to 'Edit', edit_portfolio_item_path(item, :source=>"index"), :class=>"blueButton" %>
<%= link_to 'Delete', item, :confirm => 'Are you sure?', :method => :delete, :class=>"blueButton" %>
</div>
</div>
</div>
</div>
<% end %>
<% end %>
</div>
Относительно незначительная дополнительная проблема — portfolioOptions
наведение курсора мыши не отображается в IE, но я оставлю это как подчиненное по отношению к проблеме двойного блока.
Комментарии:
1. Не могли бы вы попытаться свести этот пример к чему-то, что было бы легче воспроизвести и понять?
Ответ №1:
Попробуйте проверить HTML, который получается в результате этого. Вы помещаете div внутрь link_to
, и он сам содержит ссылки. Это допустимый html? Насколько я знаю, <a>
элемент не может содержать элемент уровня блока или другой <a>
снова.
Не уверен, как это должно себя вести.
Комментарии:
1. Я не знаю, какой механизм IE использовал для отображения этих полей дважды, но удаления этого охватывающего
<a>
тега было достаточно, чтобы предотвратить повторение этого. Спасибо!