首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用jquery进行干式编程

用jquery进行干式编程
EN

Stack Overflow用户
提问于 2010-07-07 20:51:11
回答 5查看 520关注 0票数 3

jquery新手的身份发布。我相信一定会有一种方法,以干燥的方式压缩下面的代码。本质上,这只是一个显示/隐藏,应用于一个页面上的多个元素,所有这些元素都使用相同的模板和命名约定:

代码语言:javascript
运行
复制
$("#homelink1").hover(
    function() { $("#poptext1").show(); },
    function() { $("#poptext1").hide(); }
);

$("#homelink2").hover(
    function() { $("#poptext2").show(); },
    function() { $("#poptext2").hide(); }
);
...

我被困在如何将它转换成带有传递参数的函数上,这样我就可以传递整数(1或2),并让函数计算其余的。

$("#homelink" + param).hover

EN

回答 5

Stack Overflow用户

发布于 2010-07-07 20:53:38

这个怎么样:

代码语言:javascript
运行
复制
function setHover( param ){
   $("#homelink" + param).hover(
    function() { $("#poptext" + param).show(); },
    function() { $("#poptext" + param).hide(); }
  );
}
票数 5
EN

Stack Overflow用户

发布于 2010-07-07 20:56:36

#poptext元素是它们各自的#homelink的子元素吗?如果是这样,您可以创建一个"homelink“类和一个"poptext”类,然后执行如下操作:

代码语言:javascript
运行
复制
$(".homelink .poptext").hover(
    function() { $(this).show(); },
    function() { $(this).hide(); }
});

顺便提一句,jQuery中的大多数函数在对象集合上的工作效果与它们在单个对象上所做的一样好。在这种情况下,即使$(".homelink .poptext")返回一个对象集合,但每个对象都分别与mouseover和mouseout处理程序关联。

票数 2
EN

Stack Overflow用户

发布于 2010-07-07 21:03:39

我可能会尝试以下几种方法:

代码语言:javascript
运行
复制
$('.homelink').bind('hover', function(){
    $('.poptext', this).toggleClass('hide');
});

# and some CSS

.hide {
    display: none
}

将悬停事件绑定到一个通用类名,而不是试图弄清楚如何将其绑定到#homelink{somenumber}和#poptext{somenumber}。如果需要的话,保持ids的位置(例如,对钩子的样式设置),但是要简化事情并使用类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3198697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档