0

我有一个使用该jQuery toggle功能打开和关闭子菜单的菜单。这在我的所有页面中都运行良好,但是,当我尝试将相同的菜单和子菜单添加到 ajQuery 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>

的 CSSsubmenu_sched设置为display:none;.

所以,就像我说的,这个菜单完美地工作,直到它被添加到 adialog box然后它失败了。只需id="temp_menu"从. <div>_dialog box

dialog box我尝试将它添加到 jsfiddle,但即使我选择了jQuery 1.8.3库框架,我也无法让它工作。因此,我将其设置在我的测试服务器上,以便您至少可以明白我的意思。您会注意到在我的测试服务器上,菜单和页面本身比我在这里发布的要多。我试图将静噪比保持在一个良好的水平:)

岩土石

4

1 回答 1

2

好吧,在 jsFiddle 上玩了一段时间后,我已经解决了所有问题。首先,JavaScript 不应该在对话框内。其次,您必须使用($("#temp_menu").dialog("isOpen") == true) ? $("#temp_menu").dialog("close") : $("#temp_menu").dialog("open");来比较是打开还是关闭对话框。

这是我的工作jsFiddle ,这是全屏版本jsFiddle

于 2013-01-30T15:34:37.640 回答