Javascript onFocus。然后onClick里面的功能

时间:2011-05-02 19:05:30

标签: javascript html events listener

我正在尝试这样做,当一个元素获得焦点时,它会调用一个函数,然后将处理所有其他事件 - 这是我现在的代码。

<span id="checkbox" class="checkbox" onFocus="cbHover(checkbox)"></span>

<script type="text/javascript">
    function cbHover(id) {
        if(document.getElementById(id).onClick) {
            document.getElementById(id).style.backgroundPositionY = '-63px';
        }
    }
</script>

显然这不起作用:(那么有没有办法让函数继续运行来监听其他事件?

谢谢!

4 个答案:

答案 0 :(得分:0)

单击对象时,它已经聚焦。你可以跳过onFocus并用onClick替换它,或者反过来从代码中删除if(document.getElementById(id).onClick),因为你不需要它。

答案 1 :(得分:0)

您可以使用两个事件:onFocus和onLostFocus。在onFocus事件处理程序中,您可以将onClick事件添加到元素:

document.getElementById(id).addEventListener('click',function_name,true);

在onLostFocus事件处理程序中,您可以删除事件

document.getElementById(id).removeEventListener('click',function_name,true)

答案 2 :(得分:0)

这是一个坏主意,即使你确实让它工作,你冒着在同一元素上应用多次点击的风险。你最好的选择是在dom上应用click事件我通常使用jQuery

所以,如果我在jquery中这样做,我会这样做

$(document).ready(function(){
    $('.classname').click(function(){
       // what to do onclick
    });
});

答案 3 :(得分:0)

它不起作用的原因是传递的参数,应该用引号括起来。

应该是

onFocus="cbHover('checkbox')"

否则,javascript将复选框视为变量,并尝试传递变量的值为null。