0

我正在尝试模拟两次单击以打开菜单。第一个打开菜单,第二个打开子菜单,但在第一次 click() 后功能停止。

这是我的 JS 代码:

function open_menu(id_menu, id_sub_menu) {
    $('.sous-domaines a#lien-domaine-'+id_menu).click();
    $('a#lien-menu-'+id_sub_menu).click();
}

我用这段代码在 HTML 中调用我的函数:

<span onClick="open_menu('0', '116')">Open sub-menu</span>
4

4 回答 4

0

好吧,您可以尝试一下,这几乎是您所拥有的,除了我没有在某处打开菜单这一事实

http://jsfiddle.net/tRg3e/2/

我认为 .click() 仅在您附加了处理程序时才有效,它不会触发对元素的本机点击。我在没有处理程序的情况下尝试过,并且链接不去

于 2012-10-05T20:02:39.960 回答
0

你能做这样的事情吗?第一次点击后设置一个布尔值

var IsClick = false;

function open_menu(id_menu, id_sub_menu) {
    $('.sous-domaines a#lien-domaine-'+id_menu).click();
     if (IsClick){ fnSecondClick();}   
}

function fnSecondClick() {
//open submenu

}

或类似的东西 - 点击检查菜单是否可见:

function open_menu(id_menu, id_sub_menu) {
    $('.sous-domaines a#lien-domaine-'+id_menu).click();
     if ($(element).is(":visible")){ fnSecondClick();}   
}
于 2012-10-05T20:03:16.220 回答
0

你应该远离在这样的元素中声明的“onClick”,如果我记得的话,这是不好的做法。尽管如此,它仍然有效。

如果您可以提供一些 HTML 代码,这将有助于阐明这个想法,但您可以设置一个触发事件,例如:

http://jsfiddle.net/wrN2u/3/

编辑:使用切换 - http://jsfiddle.net/wrN2u/18/

于 2012-10-05T20:04:17.157 回答
0

你可能做得太快了。

将第二个包裹在一个window.setTimeout()

于 2012-10-05T19:55:58.113 回答