链接上的jquery UI对话框单击 - 打开文件

时间:2014-06-17 19:47:37

标签: jquery jquery-ui

我在我的生产网站上有这个工作,但我正在处理一个新的网站版本而无法在模式对话框中打开链接。页面上有这个代码:

<a class="dialogify" id="TosLink" href="http://link.to.my.site.com/common/legal/termsAndConditions.htm" title="Terms and Conditions">Terms and Conditions</a>

我在页面上包含jquery和jquery-ui,然后用它来配置点击:

$(document).ready(function () {
    $("#dialog").dialog({
        autoOpen: false,
        modal: true,
        width: 500,
        height: 450,
        buttons: {
            "Dismiss": function () {
                $(this).dialog("close");
            }
        }
    });
    $(".ui-dialog-title").css({
        "font-size": +16 + "px"
    });
    $(".dialogify").on("click", function (e) {
        e.preventDefault();
        $("#dialog").html("");
        $("#dialog").dialog("option", "title", "Loading...").dialog("open");
        $("#dialog").load(this.href, function () {
            $(this).dialog("option", "title", $(this).find("h1").text());
            $(this).find("h1").remove();
        });
    });
});

我在.load上面放了一个警告(this.href),它正在获取正确的URL,但没有任何反应。控制台或firebug中没有显示错误。

编辑 - 错误的复制粘贴 - 有额外的功能(){ - 从代码中删除但仍然无法打开对话框。

1 个答案:

答案 0 :(得分:1)

为什么有

  

$(function(){

在第二行重复? 这是不必要的。

我认为你的代码无法工作的原因是因为.load()的第二个参数应该是数据,而回调函数是第三个参数。我有同样的问题。我通过使用空数组(array(),{}或简称为null)来代替数据来修复它。

将您的代码更改为:

$("#dialog").load(this.href, null, function () {
            $(this).dialog("option", "title", $(this).find("h1").text());
            $(this).find("h1").remove();
        });

希望有所帮助:)