0

我有一个标签,当“专注”时,我会显示一个 . 当我单击文档正文时,我希望它关闭。但是,当使用两种不同的事件类型时,这似乎不起作用:

<input id='input' />  
<div id='div style='display:none;'>
</div>

$('#input').focus( function(e){  
   e.stopPropagation();  
   $('#div').show()  
});

$(document).click( function(){  
   $('#div').hide();  
});

看来,e.stopPropagation()“onfocus”事件的唯一停止传播。自从我将代码切换为: $('#input').click()之后,它就可以正常工作了。

只是好奇是否有任何方法可以使用上面的代码?(想更好地了解JS)

谢谢!

4

2 回答 2

3

你可以简单地做到这一点

$('#input').bind('focus blur', function() {
    $('#div').toggle();
})

在http://jsfiddle.net/u9xwb/检查工作示例

于 2011-04-02T01:15:39.640 回答
0

你是对的,它只会杀死你订阅的事件,你需要在输入上停止点击事件。

$('#input').focus( function(e){  
   e.stopPropagation();  
   $('#div').show();
}).click( function(e){  
   e.stopPropagation();
});

$(document).click( function(){  
   $('#div').hide();  
});
于 2011-04-02T01:19:53.227 回答