【问题标题】:Jquery recall function (inside updatepanel) is not smoothJquery召回功能(更新面板内)不流畅
【发布时间】:2013-09-23 16:25:35
【问题描述】:

我有一个 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 在哪里?
  • @undefined 我该如何解决:/
  • @JasonP updatepanel>datalist>ul

标签: javascript jquery asp.net ajax updatepanel


【解决方案1】:

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

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

    });
});

这将使您无需在每次UpdatePanel 刷新后重新绑定事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2017-01-13
    相关资源
    最近更新 更多