首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >简单模式ajax调用

简单模式ajax调用
EN

Stack Overflow用户
提问于 2009-08-08 00:02:13
回答 2查看 3.4K关注 0票数 1

我正在使用以下代码在我的应用程序中实现Simplemodal:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(".dialog-link").live('click', function(e) {
 e.preventDefault();
 $.get($(this).attr('href'),function(data) {
  $.modal(data, {onOpen: open, position: ['10%','30%']});
 );
});

(仅供参考: onOpen回调只是设置了一些高度)

ajax调用返回的文档(包含在data中)有一些对datepicker等的jquery调用,但是当我的对话框显示datepicker时,datepicker将无法工作。

我知道我可以从onShow回调中打开datepicker,但理想的做法是调用数据中包含的函数,因为每个对话框可以有不同的jquery调用。

例如,有没有办法这样做?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
onShow: function(dialog) { dialog.data.my_function(); }

谢谢,迈克尔

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-08 01:34:08

正如DOM检查可能揭示的那样(firebug总是很方便的……),模式对话框会将外部文档加载到一个div中,去掉<html><head>标记。它似乎还会导入加载文档中定义的主窗口对象和函数的作用域。

因此,调用一个函数,就好像它在另一个窗口或框架( dialog.data.my_function )的作用域中一样,将不起作用。

相反,对我有效的方法是将外部函数直接绑定到onShow事件。

主文档:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <script type="text/javascript">
        $("a.dialog-link").live('click', function(e) {
           e.preventDefault(); 
           $.get($(this).attr('href'),function(data) {
           $.modal(data, {position: ['10%','30%'], onShow: function(dialog){ 
                                                           external_function()
           }});
         });
    </script>

外部文档(加载到模式框中:)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<html><head><title>bla bla </title>
   <script type="text/javascript">
      function external_function(){$("#external_content").text("UPDATED!")};
   </script>
</head>
<body>
 <div id="external_content"> .... </div>
</body>
</html>

希望这能有所帮助:)

票数 1
EN

Stack Overflow用户

发布于 2013-01-18 12:55:59

在@和answer上展开。由于jQuery 1.9中删除了live():

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).on("click","a.dialog-link",function(e) {
    e.preventDefault();
    $.get($(this).attr("href"),function(data) {
        $.modal(data, {position: ["10%','30%"], onShow: function(dialog){
            external_function()
        }});
    });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1248309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文