使用jQuery load()动态加载元素视图

时间:2011-05-20 13:47:44

标签: jquery cakephp

我有以下jQuery代码:

$('body').append('<div id="lang-dialog"></div>');

                $('#lang-dialog').load('URL HERE...');

                $('#lang-dialog').dialog({
                    modal: true,
                    draggable: false,
                    resizable: false,
                    autoOpen: false
                });


                $('a#lang').click(function(event)
                {
                    event.preventDefault(); $('#lang-dialog').dialog('open');
                });

这会使链接加载一个在DOM中创建的对话框,然后使用元素视图动态加载它的内容:app/views/elements/lang-dialog.ctp

如何使用CakePHP在我的jquery代码的load方法中吐出元素呢?

由于

1 个答案:

答案 0 :(得分:2)

您需要将$('#lang-dialog').dialog(...)调用移动到.load()方法的成功回调中。否则,您将尝试在加载标记之前创建一个对话框(因为.load()是异步的)。

  

您能用代码示例解释一下吗?

当然可以。

$('body').append('<div id="lang-dialog"></div>');

var $langDialog = $('#lang-dialog')

$langDialog.load('URL HERE...', function ()
{
    $langDialog.dialog({
        modal: true,
        draggable: false,
        resizable: false,
        autoOpen: false
    });
});

$('#lang').click(function()
{
    $langDialog.dialog('open');
    return false;
});