显示modalpopupextender时运行javascript

时间:2014-05-15 18:11:17

标签: javascript jquery modalpopupextender

此问题已在此处得到解答 - How to specify javascript to run when ModalPopupExtender is shown - 但已接受的解决方案对我不起作用。

modalpopupextender声明如下:

<ajaxtoolkit:ModalPopupExtender ID="mpe" runat="server" TargetControlID="btn"
        PopupControlID="pnlModal" PopupDragHandleControlID="pnlModalDragHandle"   BackgroundCssClass="modalBackground"
    CancelControlID="btnModal" DropShadow="true"/> 

显示/隐藏工作正常。什么不起作用是将客户端脚本链接到模式弹出扩展器的显示事件。基于原始问题,我尝试了:

 <script type="text/javascript">
    function pageLoad() {
    var popup = $find('mpe');
    popup.add_shown(SetShowing);
    }

function SetShowing() {
    alert('showing');
  }

 </script>

什么都没发生。没有警报,没有错误。在原帖中进一步阅读,我甚至在脚本中添加了这一行:     Sys.Application.add_load(页面加载);

附加行没有效果。任何想法为什么原来的答案不起作用?谢谢,我已经尝试了几个小时。

2 个答案:

答案 0 :(得分:0)

我不熟悉&#34; modalpopupextender&#34;,

但为什么不使用一些jquery?

$(document).ready(function(){
     if ($('#mpe').is(':visible')){     
         //code for when MPE is visible here

     }

});

jquery documentation

http://jsfiddle.net/N62g5/8/

答案 1 :(得分:0)

我最终不得不以另一种方式攻击这个问题。没有任何建议能够成功检测到何时显示modalpopupextender。我改变了我的方法来处理显示元素上的用户操作 - 比如专注于文本框等。如果用户正在与它进行交互,我可以确信显示了modalpopupextender。

如果你来到这里,我会引导你到这里的原帖 - How to specify javascript to run when ModalPopupExtender is shown - 并希望你比我更成功。

感谢所有评论的人,我真诚地感谢您的光临。