我有一个使用 jQuery
的菜单toggle
打开和关闭子菜单的功能。这在我的所有页面中都工作得很好,但是,当我尝试将相同的菜单和子菜单添加到 jQuery
中时dialog box
它不会打开子菜单。
这是我的index.php
代码,包括 javascript
包括来自 <head>
页面:
<script src="javascripts/jq/jquery-1.4.2.min.js"></script>
<script src="javascripts/jq/jquery-v1.8.3.js"></script>
<script src="javascripts/jq/jquery-v1.9.2.js"></script>
<p align="center" id="temp_menuOpener">[Click Here to Toggle Menu]</p>
<div id="temp_menu">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="ui-corner-bl ui-corner-br cus-dialog-content"><?php include("includes/menu.php");?></td>
</tr>
</table>
</div>
<script>
$( "#temp_menu" ).dialog({ autoOpen: false, width: 'inherit'});
$( "#temp_menuOpener" ).click(function() {
$( "#temp_menu" ).dialog( "open" );
});
</script>
这是我的menu.php
代码:
<script>
$(function()
{
$('.schedOpener').click(function()
{
$('div#submenu_sched').toggle();
});
});
</script>
<div id="menu">
<div class="menu schedOpener">
<img src="/roster/images/menu/schedule.png" border="0" title="Schedule" alt="Schedule">
</div>
<div id="submenu_sched">
<div class="menu">
<a href="/roster/sched/sched_month.php" target="_parent"><img src="/roster/images/menu/sched_month.png" border="0" title="Schedule Month View" alt="Schedule Month View"></a>
</div>
</div>
</div>
submenu_sched
的 CSS设置为display:none;
.
所以,就像我说的,这个菜单在添加到 dialog box
之前可以完美地工作。然后就失败了。只需删除 id="temp_menu"
来自<div>
会使其工作,但这也会将其从 dialog box
中删除.
我尝试将其添加到 jsfiddle,但我无法获取 dialog box
即使我选择了jQuery 1.8.3
,也无法工作。库框架。因此,我将其设置在我的测试服务器上,以便您至少可以明白我的意思。您会注意到,在我的测试服务器上,菜单和页面本身比我在这里发布的内容更多。我正在努力将静态噪声比保持在良好的水平:)
最佳答案
好吧,在 jsFiddle 上玩了一段时间后,我已经解决了所有问题。首先,JavaScript 不应该位于对话框内。其次,你必须使用 ($("#temp_menu").dialog("isOpen") == true) ? $("#temp_menu").dialog("close") : $("#temp_menu").dialog("open");
比较是打开还是关闭对话框。
关于javascript - 无法让 jQuery 切换脚本在 jQuery 对话框内运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14606325/