Javascript Jquery在按键时停止功能

Javascript Jquery在按键时停止功能,javascript,jquery,Javascript,Jquery,我是Jquery的新手,我有以下功能: $(document).ready(function() { $('*').keypress(function(e) { if(e.keyCode == 13) { $("[id^='td_']").click(function() { $(this).hide(); }); }

我是Jquery的新手,我有以下功能:

$(document).ready(function()
{
    $('*').keypress(function(e) 
    {   
        if(e.keyCode == 13) 
        { 
            $("[id^='td_']").click(function()
            {
                $(this).hide();
            });
        }
        else
        {
            return false ;
        }
    }); 
});
如果按enter键,我可以点击一些文本来隐藏他。 问题是,如果未按enter键,我的函数将继续运行事件。
返回false不执行任何操作。

使用
事件.preventDefault()以避免此行为

$(document).ready(function()
{
    $('*').keypress(function(e) 
    {   
        if(e.keyCode == 13) 
        { 
            e.preventDefault();// this will block further keypress events
            $("[id^='td_']").click(function()
            {
                $(this).hide();
            });
        }
        else
        {
            return false ;
        }
    }); 
});

看起来您希望按enter键,然后可以单击进行隐藏,然后在第一次按enter键之前,单击不应再次运行。如果是这种情况,您可以使用:


.one()
只允许调用一次处理程序,然后将其删除。

这完全是错误的。当按下enter键时,不能将click事件处理程序绑定到keypress事件处理程序中?不太清楚您想做什么,但是当按下enter键时会设置一个标志,并在click事件处理程序中检查该标志,具体取决于您在此处实际执行的操作?每次按下enter键时,您都在创建一个新的click事件侦听器。不工作,如果未按enter键,我可以继续隐藏事件停止工作,如果未按enter键,我可以继续隐藏事件
$("[id^='td_']").one(function()
{
    $(this).hide();
});