为什么这些div不在同一个位置?

时间:2013-07-23 23:58:04

标签: jquery css ruby-on-rails-3 image

因此,我创建了一个图像标记器,用于将坐标保存到数据库,该标记已在指定用于标记图像的页面上实现。然后我在主页面上用erb块调用这些图像来迭代所尊重的坐标,然后使用jQuery在所述位置显示div(.tagged)。但是,当标签显示在主页面上时,它们不在我在连接页面上标记它们时所处的位置。坐标是相同的,但它们的位置不是。任何人都有任何想法,为什么这是?任何帮助将非常感激。

HTML generated from the main page

HTML generated from the tagger page

jsFiddle of the tagger (includes CSS)

ERB Block迭代图像。在这种特殊情况下,有四个图像。

<% if @new_manual.present? %>
<% n = 0 %>
<% @new_manual.steps.each do |step| %>
    <% n += 1 %>

    <% i_connection = Contact.find(step.input_contact) %>
        <span class="i_contact i_contact<%= n %>" data-pos-x="<%= i_connection.pos_x %>" data-pos-y="<%= i_connection.pos_y %>"  data-pos-width="<%= i_connection.pos_width %>" data-pos-height="<%= i_connection.pos_height %>" ="spanid<%= n %>" data-index="<%= n %>"></span>


    <% o_connection = Contact.find(step.output_contact) %>
        <span class="o_contact o_contact<%= n %>" data-pos-x="<%= o_connection.pos_x %>" data-pos-y="<%= o_connection.pos_y %>"  data-pos-width="<%= o_connection.pos_width %>" data-pos-height="<%= o_connection.pos_height %>" id="spanid<%= n %>" data-index="<%= n %>"> </span>
        <% cord = CordType.find(step.contact_item) %>


<div class="main_panel">
<div style='margin: auto; width: 600px;'>
    <div id="image_panel<%= n %>" style="float:left; width:600px; position:relative;">
        <%= image_tag(i_connection.image.image.url(:large)) %>
<div class="i_tagmap<%= n %>"></div>
</div>
</div>
</div>

<div class="main_panel">
<div style='margin: auto; width: 600px;'>
    <div id="image_panel<%= n %>" style="float:left; width:600px; position:relative;">

        <%= image_tag(o_connection.image.image.url(:large)) %>
<div class="o_tagmap<%= n %>"></div>
</div>  
</div>  
</div>

<% end %>   
<% end %>

jQuery(标签如何在主页上显示)

<script type="text/javascript">
$(document).ready(function(){

$('span.i_contact').each(function() {                
    var pos_width = $(this).data('pos-width');
    var pos_height = $(this).data('pos-height');
    var xpos = $(this).data('pos-x');
    var ypos = $(this).data('pos-y');
    var taggedNode = $('<div class="tagged" />')
    taggedNode.css({
        "border":"5px solid red",
        "width":pos_width,
        "height":pos_height,
        "left":xpos,
        "top":ypos
    });

    var n = $(this).data('index')
    $('.i_tagmap' + n).append(taggedNode)  
    console.log(taggedNode.position())    
});

$("span.o_contact").each(function() {            
    var pos_width = $(this).data('pos-width');
    var pos_height = $(this).data('pos-height');
    var xpos = $(this).data('pos-x');
    var ypos = $(this).data('pos-y');

    var taggedNode = $('<div class="tagged" />')
    taggedNode.css({
        "border":"5px solid red",
        "width":pos_width,
        "height":pos_height,
        "left":xpos,
        "top":ypos  
    });
    var n = $(this).data('index')
    $('.o_tagmap' + n).append(taggedNode)        
});
});
</script>   

这对我来说是一件很难解释的事情,所以如果有任何我遗漏的东西可能会有所帮助,我也很乐意将其添加进去。

0 个答案:

没有答案
相关问题