1

目前我使用一个很好的工作代码来打开一个带有 Jquery 的模式:

            $(document).ready(function(){          
            $("span.ico-detail").click(function(){
                modal.open({content: "View detail of " + $(this).parent().parent().attr("id")});
                e.preventDefault();
            });
        });

现在的问题是:如何使用modal.open打开一个名为“view.html”的 HTML 文件,其中包含“查看详细信息”字符串?

我应该用什么更改内容:“xxx”,以便我可以打开 HTML 文件(view.html)并将其与其他文本连接起来?

之前谢谢。

4

1 回答 1

2

如果view.html存储在服务器上并且其内容是静态的,那么您可以选择使用 ajax 预加载文件的内容。

$(function () {
    window.myAppNs = {
        viewContent: null;
    };

    $.ajax({
        url: 'view.html',
        dataType: 'html',
        type: 'GET'
    }).done(function (resp) {
        myAppNs.viewContent = resp;
    });

    $("span.ico-detail").click(function(){
        modal.open({content: myAppNs.viewContent + $(this).parent().parent().attr("id")});
        e.preventDefault();
    });
});

我正在创建一个全局变量myAppNs。这将保存所有与应用程序相关的变量。这个想法不是用不必要的变量污染全局命名空间。有更好、更安全的方法来创建命名空间。如果你对此感兴趣,你可以用谷歌搜索。

ajax 调用预加载 的内容view.html并将其存储在myAppNs.viewContent. 点击处理程序从变量中读取该内容。

在返回 ajax 响应之前,用户可能会单击该元素。如果这是一个问题,您可以随时将命名空间创建和 ajax 调用移出,document.readyhead在引用jquery. 这应该让浏览器有足够的时间在 dom 准备好之前获取内容,但是响应延迟的可能性仍然很小。如果您需要确保只有在获取数据后用户才能单击,则将单击处理程序绑定在doneajax 调用的回调中。

于 2012-11-25T19:17:02.263 回答