2012-03-13 73 views
2

jQuery具有.select()方法,该方法允许您在文本区域中选择文本时执行功能。检测文本区域中的“取消选择”事件

不幸的是,当用户删除选择时,没有相应的.deselect()方法用于执行功能。

如何检测用户何时取消选中文本(例如,通过键入,单击或散焦)?

回答

4
$("textarea").select(function() { 
    //do something here 
}); 

$("textarea").on("blur focus keydown mousedown", function() { 
    //do something else here 
});​ 

.on用于jquery 1.7及更高版本。在此之前,你可以使用.delegate.live

http://jsfiddle.net/s29Vb/4/

它被简化的例子。您可以使用选择器而非$("textarea")更具体。

另一个例子,如果你想在blur focus keydown mousedown上做某些事情,那么只有在第一个选择了文本的情况下。

http://jsfiddle.net/s29Vb/5/

+1

如果我按下Ctrl键,选择仍然存在,所以可能需要过滤掉所有的功能/应用/ ...键 – didxga 2012-03-14 06:15:48