2017-05-24 64 views
0

我想运行一个自定义函数,当用户用鼠标点击一个div_content_editable把焦点放在那里。问题是我想运行的功能只有当焦点被添加的默认行为从点击功能。检测事件点击完成

$('#chat_box').on('click','.chat_textarea',function(event){ custom_function(); });

我的自定义函数是重点,因为被放在后添加的东西,但自定义功能的重点从点击操作完成之前运行,所以我需要的时候完成的,因为这把行动来检测那么我可以调用/运行我的自定义函数。

在此先感谢。

+0

你的意思是当'textarea'是焦点时,你需要调用一个函数(回调)? –

+0

也许你应该只听重点事件而不是点击?或者,您可以在点击侦听器中使用HTMLElement.focus()以编程方式设置焦点。 –

回答

0

试试这个:

$('#chat_box').on('click','.chat_textarea',function(event){ 
    if ($(this).is(':focus')){ 
     custom_function(); 
    } 
}); 
0

重点是已经存在,但随后用户点击别的地方在该文本区域做一些修改,例如,该realocates的焦点之后,我想运行我的自定义函数。会发生什么情况是,当我的函数运行时,它会在点击之前焦点位置的旧位置上应用我想要的内容。我认为问题在于它首先运行我的功能,而不是在点击实际完成后将焦点放在新的位置。我尝试了一个超时(10),它的工作原理,因为我推迟了我的函数的cal,给点击的时间来实际完成所要做的事情。但我不能使用超时在这里是不好的。