2012-10-05 94 views
0

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

这是我的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> 
+0

HTML和请点击事件代码? –

+2

还有控制台部分中的任何错误? –

+0

在控制台我有这个: Erreur:未捕获的异常:语法错误,无法识别的表达式:# – Amar

回答

0

你整得太快了,也许。

裹第二个在window.setTimeout()

+0

即使alert()不起作用 – Amar

0

那么你可以试试这个,这是一个很值得你有啥子,比其实我没有菜单打开某个

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

其他

我认为.click()只适用于你有一个处理程序连接,它不会触发本地点击元素..我试过它没有处理程序和链接不去

+0

是的,第一次点击()作品 – Amar

+0

@Amar尝试这个http://jsfiddle.net/tRg3e/2/如果你不绑定你触发的元素的点击处理程序,那么它不起作用 – Huangism

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();} 
} 
0

你应该迷失在这样的元素宣称的“onClick”了,这是不好的做法如果我确实记得。尽管如此,它仍然有效。

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

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

编辑:随着切换 - http://jsfiddle.net/wrN2u/18/

+0

它不被弃用,只是不好的风格 - 这是一个很好的习惯来分开你的代码(和CSS)尽可能从您的HTML。 – Blazemonger

+0

哦,我的坏。谢谢(你的)信息! - 编辑答案。 – Jish