我有一个 jQuery 菜单,在“单击”时打开并在“dblclick”时关闭。 http://jsfiddle.net/snoffoz/4rZa9/1/
我的问题是它(子菜单)在我单击链接后关闭。有没有办法让它只在单击主菜单点(菜单 1、菜单 2)时打开/关闭?
编辑:我的问题不会出现在 jsfiddle 中,因为链接不是真实的。
"ul" "li" 由 Wordpress 生成。WP 链接http://wptemp.site90.net/
我有一个 jQuery 菜单,在“单击”时打开并在“dblclick”时关闭。 http://jsfiddle.net/snoffoz/4rZa9/1/
我的问题是它(子菜单)在我单击链接后关闭。有没有办法让它只在单击主菜单点(菜单 1、菜单 2)时打开/关闭?
编辑:我的问题不会出现在 jsfiddle 中,因为链接不是真实的。
"ul" "li" 由 Wordpress 生成。WP 链接http://wptemp.site90.net/
工作演示 http://jsfiddle.net/JuvwB/
如果我建议您尝试重构您的无序列表,那么您遇到了绑定问题,因为您的顶部ul
列表li
嵌套了全新的ul
即水平菜单。
此代码应该对您有所帮助,我所做的只是在用户单击嵌套列表时返回 false。
你也可以试试这个:http ://api.jquery.com/unbind/
希望这会有所帮助,干杯!
代码
jQuery.noConflict();
(function($) {
$(function() {
// Dropdown Menu
var timeout = 100;
var closetimer = 0;
var ddmenuitem = 0;
function jsddm_open() {
jsddm_canceltimer();
jsddm_close();
ddmenuitem = $(this).find('ul').css('visibility', 'visible').parent().addClass('jsddm_hover').end();
}
function jsddm_close() {
if(ddmenuitem) ddmenuitem.css('visibility', 'hidden').parent().removeClass('jsddm_hover');
}
function jsddm_timer() {
closetimer = window.setTimeout(jsddm_close, timeout);
}
function jsddm_canceltimer() {
if(closetimer) {
window.clearTimeout(closetimer);
closetimer = null;
}
}
$('ul.jsddm li').bind('click', jsddm_open);
$('ul.jsddm li').bind('dblclick', jsddm_timer);
$('ul.sub-menu li a').bind('dblclick', function(){
return false;
});
//document.onclick = jsddm_close;
$('.thumb img').after('<span></span>');
$('.thumb span').css('opacity','0');
$('.post_home a:first-child').hover(function(){
});
});
})(jQuery);
</p>