0

動的に作成されたものが<div>あり、効果を入れようとしていFadeIn FadeOutます。ただし、PostBack が発生すると、これらの 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();
           });
});
4

1 に答える 1

0

要素を置き換えると、イベント ハンドラーは新しい要素にバインドされなくなります (それらは完全に新しい個別の要素であるため)。それらをバインドするコードを最初に実行したときの基準に一致していてもです。イベント委任を使用する必要があります:

$(document).on({
     mouseenter: function(e) {
         $(this).find(".botaoExcluir").fadeIn();
     },
     mouseleave: function(e) {
         $(this).find(".botaoExcluir").fadeOut();
     }
}, '.linhaImovel');
于 2013-01-04T12:22:26.080 に答える