Jquery召回功能(内部updatepanel)不流畅

时间:2013-09-18 19:00:31

标签: javascript jquery asp.net ajax updatepanel

我有一个jquery函数来切换“ReplyComment”div。

function addcommentdiv() {
    $('.in').click(function () {
        var $this = $(this),
            $reply = $this.next('.ReplyComment');
        var cevapladisplay = $reply.css('display');
        $reply.toggle();

    });
}
addcommentdiv();

$(document).ready(function () {
    addcommentdiv();
});

var prm = Sys.WebForms.PageRequestManager.getInstance();

prm.add_endRequest(function () {
    addcommentdiv();
});

...

<ul class="chats">
 <li class="in" >
        blablabla
 </li>
 <div class="ReplyComment" id="ReplyComment">
     blablabla
 </div>
 </ul>

此功能有时有时不工作。不能顺利工作。   我无法理解。(在updatepanel和datalist中)

1 个答案:

答案 0 :(得分:2)

您可能多次添加点击处理程序。为了完全避免这个问题,我建议使用事件委派:

$(document).ready(function() {
    $(document).on('click', '.in', function () {
        var $this = $(this),
            $reply = $this.next('.ReplyComment');
        var cevapladisplay = $reply.css('display');
        $reply.toggle();

    });
});

这将阻止您在每次UpdatePanel刷新后重新绑定事件。