1

我有以下代码:

<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
    'id'=>'mydialog',
    // additional javascript options for the dialog plugin
    'options'=>array(
        'title'=>'Confirmar',
        'resizable'=>'false',
        'autoOpen'=>false,
        'modal'=>true,      
        'buttons'=>array('Eliminar'=>'js:function(){deleteMessage();$(this).dialog("close");}',
                         'Cancelar'=>'js:function(){$(this).dialog("close");}',),
    ),
));?>
<div style="display:none">Do you confirm you want to delete the item?</div> 
<?php 
$this->endWidget('zii.widgets.jui.CJuiDialog');
?>

<input type="button" onclick="js:openDlg()" value="Open the dialog">
<script language="javascript" type="text/javascript">
    function openDlg(){
        $("#mydialog").dialog("open"); 
    }
</script>

这非常有效,直到我需要调用 jQuery 的 .load() 函数。出于测试目的,我有一个调用 .load() 方法的按钮(尽管应该在文档准备好时调用它)。如果我在单击此试用按钮之前点击了打开对话框按钮,则对话框将正确打开。否则,它会失败并出现以下错误:

$("#mydialog").dialog 不是函数 $("#mydialog").dialog("open");

试用按钮:

<input type="button" onclick="js:load_wall()" value="Load Messages">
function load_wall(){
        var liga = $("#liga_id").val();
        $('#div_wall_messages').load('displayMessages',{liga_id: liga}, function(){

        });

拜托,任何帮助都非常受欢迎。这个错误让我发疯。谢谢你!!

4

3 回答 3

2

是什么displayMessages?它是一个包含脚本的页面吗?它是包含另一个 jQuery 副本的页面吗?如果您包含 jQuery 的第二个副本,您将覆盖您现有的副本 - 可能您正在用一个没有加载 Dialog 插件的新 jQuery 覆盖。

如果你想加载到一个 div 并且你在加载的文件中得到的是一个完整的 HTML 页面(包括<head>, <script>s 等),那么你应该只加载id你想要的内容片段(by )到你的目标。在所有情况下都避免load()使用包含<script>;的 HTML 内容。结果是,视情况而定,要么一无所获,要么毫无意义。

同样js:在您上面的所有代码中,什么都不做,应该省略。

于 2011-08-02T17:51:13.043 回答
1

如果负载是问题,很可能您已经加载(并覆盖)了当前加载的库,其中可能包括带有对话框插件的 jQuery。确保加载一个干净的页面,(每当我使用 AJAX 时,我通常只生成一个<div>或一个<ul>,无论我需要什么,而不是整个网页。

如果失败,请确保包含正确的 javascript 文件,包括 jQuery 和看似 jQuery UI。

检查浏览器的网络/资源,跟踪这些脚本文件的情况,并查看 javascript 文件上是否有任何其他错误消息(可能是 404 未找到?)。

于 2011-08-02T19:07:59.487 回答
0

如上所述,您可能会覆盖这些库。

处理它的一种方法是确保加载正确的文件。

另一种方法是在对话框和对话框中的内容之间插入 iframe。浏览器将 iframe 视为具有自己脚本的单独页面。因此,“在 iframe 之上”的内容脚本将与“在”iframe 之下的对话框脚本分开。

由于您使用的是 Yii,请查看此wiki

于 2013-08-01T09:53:20.000 回答