2013-07-12 108 views
0

当使用jquery悬停在超链接上时,我正在追加div标签(此div标签在html部分中)和另一个div标签(此div标签在脚本中)。div不使用jquery追加另一个div

现在,问题是,当我第一次悬停链接时加载页面后,它确实附加div,但它不附加div标签。所以我只是混淆它。

请帮我解决问题。

在这里,我给出了一些代码。

<script id="CollegeInfo" type="text/html"> 
<div id="${CollegeId}"> 
    <table width="400px"> 
    <tr> 
     <td colspan="3"> 
      <div class="clgname"> 
      {{html CollegeName}} 
      </div> 
     </td> 
    </tr> 
    <tr style='color:Gray;'> 
     <td> 
     </td> 
     <td width="10px"> 
     </td> 
     <td valign="top" style='font-size:12px;'> 
      <b>Rating :</b></br> 
      <div class="grating"></div> // Div tag with whom I am binding html part div tag... 
     </td> 
    </tr> 
    </table> 
</div> 
</script> 

Jquery的一部分:

<script type="text/javascript"> 
$(function(){ 
    $(".name").mouseover(function (e) { 
     var id = $(this).attr("id"); 

     $.ajax({ 
      type: "POST", 
      url: "College.asmx/GetInfo", 
      data: "{'Id':" + id + "}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(response) { 
       var info = response.d; 
       $("#tbodyCollegeInfo").html($("#CollegeInfo").tmpl(info)); 

       var block_element = $("#rating"); 
       $('.grating').append(block_element); 

       $('#hdndivCollegeInfo').attr("style","display:block;"); 
      } 
     }); 
    }); 
}); 
</script> 

HTML部分:

<div id="hdndivCollegeInfo" style="display: none;"> 
     <div class="hoverpreview"> 
      <div id="rating" class="rating"> 
       <asp:Rating ID="rtng" runat="server" BehaviorID="rating" ReadOnly="true" StarCssClass="StarCss" 
        FilledStarCssClass="FilledStarCss" EmptyStarCssClass="EmptyStarCss" WaitingStarCssClass="WaitingStarCss"> 
       </asp:Rating> 
      </div> 
      <table> 
       <tbody id="tbodyCollegeInfo"> 
       </tbody> 
      </table> 
     </div> 
    </div> 
+0

尝试改变'变种block_element = $( “#等级”);''到VAR block_element = $( “#等级”)的clone();' – anu

+0

没有html标签里面工作的脚本? –

+0

@anu .clone正在工作。但它显示等级2次,其中一个原来在那里,另一个是克隆... – user2575184

回答

0

试试这个

 var block_element = $("#rating").outerHtml(); 
     $('.grating').append(block_element); 

编辑: 你是否在页面上发生任何错误?,是否达到ajax调用的成功部分?

+0

nt得到任何错误。是的,它达到了ajax调用的成功部分。在页面加载后,它显示div确定bt,然后在下一个悬停时,它不显示。 – user2575184

+0

究竟在你的代码中'class =“name”'存在吗? –

+0

对不起删除评论,这是不相关的 – Raver0124

0
Don't use html tags inside the script directly. use like this 
<script id="CollegeInfo" type="text/html"> 
var appendHtml= 
'<div><table width="400px"> 
<tr> 
     <td colspan='3'> 
      <div class='clgname'>    
      </div> 
     </td> 
    </tr> 
    <tr style='color:Gray;'> 
     <td> 
     </td> 
     <td width='10px'> 
     </td> 
     <td valign='top' style='font-size:12px;'> 
      <b>Rating :</b></br> 
      <div class='grating'></div> 
     </td> 
    </tr> 
    </table></div>'; 

</script> 

In the ajax edit as $('.grating').append(appendHtml);