我希望能够将相同的事件处理程序分配给许多不同的div元素。每个元素都有独特的风格。
我像这样注册了事件处理程序:
<script type="text/javascript">
function add_something() {
document.getElementById('manipulate').onclick = do_something;
}
function do_something(e) {
this.style.property = value;
}
window.onLoad = add_something;
</script>
所以我可以给一个元素分配一个事件处理程序,像这样:
<div id="manipulate"></div>
问题是,我想把这个处理程序分配给几个元素,每个元素都有一个独特的样式,我想用CSS来做到这一点。但我不知道该怎么做。
最后,我想要这样的东西:
<style>
#element1{...}
#element1{...}
#element1{...}
</style>
…
<div id="element1" class="manipulate"></div>
<div id="element2" class="manipulate"></div>
<div id="element3" class="manipulate"></div>
这可能吗?由于
事件委托?
HTML:<div id="wrap">
<div id="element1" class="manipulate">First element</div>
<div id="element2" class="manipulate">Second element</div>
<div id="element3" class="manipulate">Third element</div>
</div>
JavaScript: var wrap = document.getElementById('wrap');
wrap.onclick = function (e) {
var elem = e.target;
elem.style.color = 'red';
};
现场演示: http://jsfiddle.net/VLcPw/
你可以在现代浏览器中按类选择元素,或者只使用jQuery,它可以在任何地方工作。
$(document).ready(function(){
$('.manipulate').click(function(){alert('Hello.')});
//or .hover/any other event.
});
jQuery事件。也许有一个更相关的例子?$('.manipulate').click(function(){
$(this).addClass( 'whateverClass' );
//or
$(this).css('color', 'red');
});
为什么你不给jquery一个尝试?
使用jquery,你只需要将相同的click事件绑定到所有相应的元素:
$("div.manipulate").click(function(e) {
$(this).css(property, value);
});
property必须被替换为一个有效的CSS属性,value必须是正确的。