Javascript (';';)。使用jQuery';s.load()函数
我有以下代码:Javascript (';';)。使用jQuery';s.load()函数,javascript,jquery-ui,jquery-dialog,jquery-load,Javascript,Jquery Ui,Jquery Dialog,Jquery Load,我有以下代码: <?php $this->beginWidget('zii.widgets.jui.CJuiDialog', array( 'id'=>'mydialog', // additional javascript options for the dialog plugin 'options'=>array( 'title'=>'Confirmar', 'resizable'=>'false',
<?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另一个副本的页面吗?如果您包含jQuery的第二个副本,您将覆盖现有副本,可能您正在覆盖一个已加载对话框插件的jQuery,而新的jQuery没有加载对话框插件
如果要加载到div中,并且加载的文件中包含的是一整页HTML(包括
,
s等),则只应将所需的内容片段(通过id
)加载到目标中。在所有情况下,都要避免load()
ing包含
的HTML内容;其结果取决于具体情况,要么毫无意义,要么毫无意义
另外,js:
在上面的所有代码中,没有任何作用,应该忽略。如果加载是问题所在,那么很可能您已经加载(并覆盖)了当前加载的库,其中可能包括带有对话框插件的jQuery。确保加载一个干净的页面(每当我使用AJAX时,我通常只生成一个
或
,而不是整个网页)
如果失败,请确保包含正确的javascript文件,其中包括jQuery和jQuery UI
检查浏览器的网络/资源,跟踪这些脚本文件的运行情况,并查看javascript文件上是否有任何其他错误消息(可能没有找到404?)。如上所述,您可能会覆盖这些库
一种处理方法是确保加载正确的文件
另一种方法是在对话框和对话框中的内容之间插入一个iframe。iframe被浏览器视为一个单独的页面,带有自己的脚本。因此,iframe“顶部”的内容脚本将与iframe“下方”的对话框脚本分开
既然您使用的是Yii,请检查此项。什么是$this
?我不知道任何使用该方法的对象。@Rikudo Sennin CJuiDialog是我使用的框架Yii提供的一个小部件。它封装了JUI对话框插件。从这个问题中抽象出您的PHP。这完全无关。请与我们谈谈您的预处理HTML/JS输出nstead.@Rikudo:这是一个jQuery问题;应该从问题中删除PHP,而不是从标记中删除Javascript。你能给我们看一下html吗?具体地说,与#mydialog相关的#div#u wall#消息在哪里?在#div#u wall#消息中是#mydialog吗?谢谢@bobince!我自己永远不会解决这个问题的。是的,显示Messages是一个呈现另一个包含脚本的页面的操作。因此,这正是发生的事情,我正在替换已经加载的javascriptim,很抱歉拒绝了标记建议。但是仔细研究,我真的不明白为什么不应该将其标记为jquery/javascript问题。不过感谢您的帮助!
<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(){
});