我在CSS3中有一个名为"tap"
和"untap"
的简单动画。
我通过" className"
调用它,我正在尝试将其合并,以便onclick
确实“点击”并onmouseout
“重置”。
我有点击部分工作,但在else
声明后它“不起作用”。我做错了什么?
<img src="picHere.gif" id="img7" onclick="if(this.className != 'tap') { this.className='tap'} else {"onmouseout='this.className='untap'}; "/>
答案 0 :(得分:2)
你只需要这个:
<img src="picHere.gif" id="img7"
onclick="if(this.getAttribute('class') !== 'tap') this.setAttribute('class','tap');"
onmouseout="if(this.getAttribute('class') === 'tap') this.setAttribute('class','untap');" />
如果您愿意,您实际上可以保留className
。但需要注意的重要一点是,onclick
和onmouseout
事件是分开的。
答案 1 :(得分:0)
您无法像这样交错事件处理程序。试试这个:
<img src="picHere.gif" id="img7" onclick="this.className='tap';" onmouseout='this.className='untap';" />
如果你愿意使用jQuery,你可以做一些这样的事情,它更干净:
<img src="picHere.gif" id="img7" />
// in your JavaScript code
$('#img7').click(function() { $(this).addClass('tap'); })
.mouseout(function() { $(this).removeClass('tap'); });
答案 2 :(得分:0)
这只是无效的标记。把它改成这样的东西:
<script type="text/javascript">
function onclickHandler(sender) {
if (sender.className != 'tap') {
sender.className = 'tap';
}
return false;
}
function onmouseoutHandler(sender) {
if (sender.className == 'tap') {
sender.className = 'untap';
}
return true;
}
</script>
<img src="picHere.gif"
id="img7"
onclick="return onclickHandler(this);"
onmouseout="return onmouseoutHandler(this);" />