无论我在哪里点击文档,我都想发布焦点事件。但是,我使用的是可排序列表,其中每个可排序项目都包含textarea,单击可排序项目时不会触发focusout事件。可拖动项目也是如此。我创建了一个jsfiddle来展示这个问题:
单击textarea并尝试单击蓝色矩形内的任意位置: 在Google Chrome中测试 http://jsfiddle.net/RWJhs/
是否有任何已知的解决方法?
JavaScript的:
$("textarea").focusout(function(){
alert("Do something");
});
$("#draggable").draggable();
HTML:
<div id="draggable">
<textarea></textarea>
</div>
答案 0 :(得分:0)
你可以试试这个
$("textarea").focusout(function(){
alert("Do something");
}).click(function(e){
e.stopPropagation();
return true;
});
$("#draggable").draggable({
start: function( event, ui ) {
if( $('textarea:focus', this).length ){
$('textarea', this).focusout();
}
}
}).click(function(e){
if( $('textarea:focus', this).length ){
$('textarea', this).focusout();
}
});
答案 1 :(得分:-1)
这对我有用: http://jsfiddle.net/RWJhs/1/
$("textarea").focusout(function(){
alert("Do something");
});
$('#draggable not(textarea)').on('click');
$("#draggable").draggable();
编辑: 手动触发模糊事件似乎可以在不禁用拖动的情况下使其工作 见这里:http://jsfiddle.net/RWJhs/6/
$("#draggable").on('click', function(e){
if (e.target == this && $('textarea').is(':focus')) $('textarea').blur();
});
$("textarea").blur(function(){
alert("Do something");
});
$("#draggable").draggable();