【问题标题】:Attach event to hyperlink click inside update panel?将事件附加到更新面板内的超链接单击?
【发布时间】:2011-05-08 22:31:17
【问题描述】:

我正在向文档上的 UpdatePanel 内的 html 超链接添加一个单击事件(单击时显示警报)(准备就绪)。但是,当我单击超链接时,该事件永远不会被触发。是因为异步回发吗?这样做的正确方法是什么?

 $(document).ready(function(){
            $('#addExcl').click(function(){
                alert('asassasaas');return false;
            });    
    });

【问题讨论】:

  • sigh ... 显示一些代码,我们猜不出你在做什么。
  • 你所描述的应该有效。我们需要编写代码。
  • 我已经添加了代码位,当我将超链接放在更新面板之外时它可以正常工作,但当它在更新面板内时就不行。 PS:您可以将我的问题上的 -1 设置回 0 吗?我现在已经添加了代码._.
  • 我们需要一些 HTML 代码,但它不能很好地工作,这太笼统了,无法给你答案......别担心,这个社区不会窃取你的代码,你可以透露更多:)
  • html 只是意味着更新面板的语法。而且,我从没想过有人会窃取我的代码。

标签: asp.net jquery updatepanel


【解决方案1】:

您需要在每次 ajax 更新中附加偶数,因为 dom 结构会发生变化,并且更新部分会丢失事件。

var prm = Sys.WebForms.PageRequestManager.getInstance();    
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);

function InitializeRequest(sender, args) {      
}

function EndRequest(sender, args) {
         $('#addExcl').click(function(){
             alert('asassasaas');
             return false;
         }); 
}

【讨论】:

  • 嗨 aristos,感谢您的回复。如果我改用 pageLoad 会怎样?
  • @popo 这是 MS 在面板上每次 ajax 更新时触发的事件。我认为最好将它附加到 EndRequest 以确保找到控件。
  • 感谢 Aristos,在我的例子中它只是一个切换超链接,所以没有回发。但是感谢您的解释,竖起大拇指=)
  • @popo 如果您没有进行回发,并且在页面加载时看不到切换,那么您可能还有其他 javascript 错误。一个 javascript 错误可以停止其余的 javascript 代码。在 javascript 错误控制台上查看它。 !
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 2016-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-26
  • 2023-03-26
相关资源
最近更新 更多