我将它用于行颜色:
echo"<tr class=\"normal\" onClick=\"this.className='normalselected'\"
onmouseover=\"this.className='normalon'\"
onmouseout=\"this.className='normal'\">\n";
当你移动时它起作用,只有当我移动到另一行时它才会恢复正常时它才有效。
我该如何更改?
答案 0 :(得分:1)
那是因为onmouseout让它恢复正常;你需要的是记住你点击的时间。虽然这不是一个“好”的解决方案,但它应该做你想做的事情
在你的CSS中
.normal-clicked,
.normal-over {
/* whatever needs to go here */
}
.normal {
/* whatever needs to go here */
}
然后在php中
?>
<script type="text/javascript">
function handleClick( el ){
if ( el.className == 'normal-clicked' ){
el.className = 'normal';
}
else {
el.className = 'normal-clicked';
}
}
function handleMouseOver( el ){
el.className = 'normal-over';
}
function handleMouseOut( el ){
if ( el.className == 'normal-over' ){
el.className = 'normal';
}
}
</script>
<?php
echo '<tr class="normal" onclick="handleClick(this);" onmouseover="handleMouseOver(this);" onmouseout="handleMouseOut(this);">', "\n";
答案 1 :(得分:1)
echo "<tr class=\"normal\" onclick=\"this.className='normalselected'\"
onmouseover=\"if (!/normalselected/gi.test(this.className)) this.className='normalon'\"
onmouseout=\"if (!/normalselected/gi.test(this.className)) this.className='normal'\">\n";
虽然我会认真考虑使用CSS悬停和正确的事件监听器。
答案 2 :(得分:1)
即使我不同意你这样做的方式,也只是回答你的问题:你正在删除mouseout事件中正常选择的类,这是正常的。你可以通过添加像
这样的条件来防止这种情况if('normalon' == this.className)
到你的mouseout事件处理程序
你也可能想要阻止在你再次来到已选择的行时添加normalon类..所以你需要添加像
这样的东西if('normal' == this.className)
到你的onmouseover属性..但你应该考虑使用函数而不是所有这些条件,如果你打算坚持使用javascript