以jquery新手的身份发布。我相信一定会有一种方法,以干燥的方式压缩下面的代码。本质上,这只是一个显示/隐藏,应用于一个页面上的多个元素,所有这些元素都使用相同的模板和命名约定:
$("#homelink1").hover(
function() { $("#poptext1").show(); },
function() { $("#poptext1").hide(); }
);
$("#homelink2").hover(
function() { $("#poptext2").show(); },
function() { $("#poptext2").hide(); }
);
...我被困在如何将它转换成带有传递参数的函数上,这样我就可以传递整数(1或2),并让函数计算其余的。
$("#homelink" + param).hover
发布于 2010-07-07 20:53:38
这个怎么样:
function setHover( param ){
$("#homelink" + param).hover(
function() { $("#poptext" + param).show(); },
function() { $("#poptext" + param).hide(); }
);
}发布于 2010-07-07 20:56:36
#poptext元素是它们各自的#homelink的子元素吗?如果是这样,您可以创建一个"homelink“类和一个"poptext”类,然后执行如下操作:
$(".homelink .poptext").hover(
function() { $(this).show(); },
function() { $(this).hide(); }
});顺便提一句,jQuery中的大多数函数在对象集合上的工作效果与它们在单个对象上所做的一样好。在这种情况下,即使$(".homelink .poptext")返回一个对象集合,但每个对象都分别与mouseover和mouseout处理程序关联。
发布于 2010-07-07 21:03:39
我可能会尝试以下几种方法:
$('.homelink').bind('hover', function(){
$('.poptext', this).toggleClass('hide');
});
# and some CSS
.hide {
display: none
}将悬停事件绑定到一个通用类名,而不是试图弄清楚如何将其绑定到#homelink{somenumber}和#poptext{somenumber}。如果需要的话,保持ids的位置(例如,对钩子的样式设置),但是要简化事情并使用类。
https://stackoverflow.com/questions/3198697
复制相似问题