0

我有一个 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>

此功能有时工作有时不工作。短期不能顺利工作。我不明白。(在更新面板和数据列表中)

4

1 回答 1

2

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

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

    });
});

这将防止您在每次UpdatePanel刷新后都需要重新绑定事件。

于 2013-09-18T19:10:06.763 回答