2013-01-04 38 views
0

我有一個<div>動態創建,我正試圖把FadeInFadeOut效果。但是,當PostBack發生時,這些Jquery效果停止工作。加載頁面時,一切正常,但如果發生回發,則停止。當發生回發時,特定的JQuery效果停止工作

創建DIV動態

protected string CarregaLista() 
{ 
    int credenciada_Id = Convert.ToInt32(tk.CarregaToken(1, Request.Cookies["token"].Value)); 
    int celula_Id = Convert.ToInt32(tk.CarregaToken(21, Request.Cookies["token"].Value)); 

    string select = "My Select"; 

    SqlConnection c = new SqlConnection(con.Con); 
    SqlCommand cmd = new SqlCommand(select, c); 
    c.Open(); 

    try 
    { 
     SqlDataReader r = cmd.ExecuteReader(); 
     montaTabela += "<ul id='sortable' class='" + cont + "' style='margin: 0 15px 15px !important; width: 637px !important;'>"; 

     while (r.Read()) 
     { 
      montaTabela += "<li class='ui-state-default linhaImovel' style='color:#777 !important;' id='" + r["Imovel_Id"].ToString() + "'>";      
      montaTabela += "<span class='ui-icon ui-icon-arrowthick-2-n-s'></span>"; 

      montaTabela += "<div class='btn btn-mini btn-netimoveis botaoExcluir' style='float: right !important;' id='excluirDestaque_" + r["Imovel_id"].ToString() + "' OnClick='excluirDestaque(" + r["Imovel_Id"].ToString() + ")'><i class='icon-trash icon-white'></i>Excluir</div>"; 

      montaTabela += "<table>"; 
      montaTabela += " <tr>"; 
      montaTabela += "  <td>"; 
      montaTabela += "   <img src='" + url + "' width='110' height='81' />"; 
      montaTabela += "  </td>"; 
      montaTabela += "  <td style='padding-left: 20px !important; padding-right: 20px !important; width: 111px !important;'>COD: " + r["Imovel_Id"].ToString() + "<br />" + r["TipoDsc1"].ToString(); 
      montaTabela += "  </td>"; 
      montaTabela += "  <td style='border-left: 1px dotted #CCC; padding-left: 20px !important; padding-right: 20px !important; width: 111px !important;'>" + r["BairroDsc1"].ToString(); 
      montaTabela += "  </td>"; 
      montaTabela += "  <td style='border-left: 1px dotted #CCC; padding-left: 20px !important; padding-right: 20px !important; width: 111px !important;'>R$ " + r["ValorImovel"].ToString(); 
      montaTabela += "  </td>"; 
      montaTabela += "  <td>"; 
      montaTabela += "   <span class='badge badge-warning'></span>"; 
      montaTabela += "  </td>"; 
      montaTabela += " </tr>"; 
      montaTabela += "</table>";      
      montaTabela += "</li>"; 
     } 

     montaTabela += "</ul>"; 
     return montaTabela; 
    } 
    catch (Exception e) 
    { 
     return montaTabela; 
    } 
} 

試圖通過JQuery

$(function() {    
      $(".linhaImovel").mouseenter(function() { 
       $(this).find(".botaoExcluir").fadeIn(); 
      }).mouseleave(function() { 
       $(this).find(".botaoExcluir").fadeOut(); 
      }); 
}); 
+0

這看起來像是應該使用'on'的情況,而不是將事件綁定到對象 – Stefan

回答

0

放效果如果更換事件處理程序不再綁定到新的元素(因爲它們是完全新的,獨立的元素),即使它們與最初執行代碼時綁定它們的條件相匹配。您需要使用event delegation

$(document).on({ 
    mouseenter: function(e) { 
     $(this).find(".botaoExcluir").fadeIn(); 
    }, 
    mouseleave: function(e) { 
     $(this).find(".botaoExcluir").fadeOut(); 
    } 
}, '.linhaImovel');