【发布时间】:2012-01-19 19:46:09
【问题描述】:
我有一个 jQuery 代码,它可以按我预期的那样工作到某个点。 Here 是小提琴
三个菜单项,当将鼠标悬停在上面时,一个黑色方块和附加信息会出现在黄色框中。 单击菜单 1 和 3 时,菜单前会出现一个绿色圆圈。 单击菜单 2 时,还会出现一个搜索栏,并在稍有延迟后获得焦点。
到目前为止,一切都很好。
我想要的是,例如:
-当单击“menu_item”_2 并将鼠标移到另一个项目上时,必须在黄色字段中显示“info_2”。
所以我应该在点击后以某种方式放下悬停。 当我点击另一个 menu_item 时,它应该在黄色框中显示相应的信息。
我不是 jQuery 专家,所以可能代码必须以其他方式完成。
无论如何,谢谢你的帮助!
$(function() {
$("#search").hover(
function() {
$("#search_info").show();
$("#arrow").show().css('top', 230);
$("#fade_search").animate({ opacity: 0.4},50);
},
function() {
$("#arrow, #search_info").hide();
$("#fade_search").animate({ opacity: 1},50);
}).click(function(e) {
$("#activated").show().css('top', 232);
var focusDelay = $("input[type=text]").fadeIn(100);
setTimeout(function(){
$(focusDelay).focus();
},1000);
e.preventDefault();
});
$("#list").hover(
function() {
$("#list_info").show();
$("#arrow").show().css('top', 205);
$("#fade_list").animate({ opacity: 0.4},50);
},
function() {
$("#arrow, #list_info").hide();
$("#fade_list").animate({ opacity: 1},50);
}).click(function(e) { show up
$("#activated").show().css('top', 209 );
e.preventDefault();
});
$("#program").hover(
function() {
$("#program_info").show();
$("#arrow").show().css('top', 255);
$("#fade_program").animate({ opacity: 0.4},50);
},
function() {
$("#arrow, #program_info").hide();
$("#fade_program").animate({ opacity: 1},50);
}).click(function(e) {
$("#activated").show().css('top', 261 );
e.preventDefault();
});
});
【问题讨论】:
-
只是为了澄清一下:单击任何菜单项一次后,文本不应在悬停时显示,而应仅在单击菜单时激活?
-
是的,这是真的。点击后应显示相应菜单项的文本。
-
我正在研究一个干净的解决方案,其中包含清晰的示例,请稍等。 :)
-
谢谢,我很期待看到它! :)