2011-02-05 74 views
0

我想在Web窗体上添加三个按钮。每个按钮都有自己的ID。当我点击一个按钮时,我想让一个div的内容变得可见,并且让其他人隐藏起来。但是,现在我使用三个函数作为事件添加到每个按钮。有创建一个函数并添加elementId作为参数的智能方法吗?我想“陷入”请求对象。如何将按钮elementId作为参数捕获到函数中

function myCoolFunction(parameter) { 
if(parameter=="button1") { 
    hilight("button1"); 
} 
if(parameter=="button2") { 
// do something else for example 
} 

} 

感谢,

+0

你应该使用类似的jQuery这一点。这是一个为你做这些事情的框架,比如隐藏和全部。 – Marnix 2011-02-05 23:35:36

+1

我正在使用JQuery,我只想变得更加精通JavaScript。 – Shyam 2011-02-05 23:36:31

+0

难道不是`highlight(“div1”)`例如? – 2011-02-05 23:47:34

回答

2

试试这个:

​​
1

使用custom data attributes

标记

<input type="button" value="button one" onClick="myCoolFunction(this)" data-related-div="div_one" /> 
<div id="div_one" /> 
<input type="button" value="button two" onClick="myCoolFunction(this)" data-related-two="div_one"/> 
<div id="div_two" /> 
<input type="button" value="button three" onClick="myCoolFunction(this)" data-related-div="div_three" /> 
<div id="div_three" /> 

脚本

function myCoolFunction(button) { 
    highlight(button.dataset.relatedDiv); 
} 

注意,如果你添加一个新的按钮,您不必修改JavaScript代码。

此外,这可能会破坏蹩脚的浏览器(例如IE)。只有

dataset属性是(目前)的Webkit:

更新(对于那些谁没有按照原来的链接)。尽管在所有现代浏览器中都可以使用getAttributesetAttribute访问自定义属性。

1

如果你有兴趣的jQuery ...

HTML

<div id="box_1"></div> 
<div id="box_2"></div> 
<input type="button" data-id="box_1" /> 
<input type="button" data-id="box_2" /> 

JS

$("input:button").click(function(e) { 
    var id = $(this).attr("data-id"), 
    boxes = $(".boxes"), 
    boxes.hide().filter("#"+id).show(); 
    e.preventDefault(); 
}) 
相关问题