Rag*_*azs 4 javascript css events html5
注意:这个问题与如何使用CSS禁用文本选择突出显示不同?
在问之前我从上面的问题中读了讨论历史.一切正常,但我可以允许CTRL+A(全选)仅适用于输入元素.
那是因为我正在桌面上部署我的HTML5应用程序,我希望从GUI/Forms应用程序中获得相同的行为.
什么是起点?尝试用keypress事件绑定所有元素并观察CTRL + A keyCode?这种方法的缺点是必须控制一切并注意重新渲染.
我更喜欢CSS解决方案,但欢迎任何想法.
提前致谢.
@EDIT:我找到了这个ulgy解决方案,但正在工作:
$(document).keydown(function(objEvent) {
if (objEvent.ctrlKey) {
if ((objEvent.keyCode === 65) || (objEvent.keyCode == 97)) {
if ($(objEvent.target).not("input").disableTextSelect().length) {
return false;
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
可能重复.
如果您被允许使用jquery,这是您正在寻找的答案.
如果您想要同时考虑两者,则65为'A'的ascii和'a'的ascii.
$(function(){
$(document).keydown(function(objEvent) {
if (objEvent.ctrlKey) {
if ($(objEvent.target).not('input')){
if (objEvent.keyCode == 65 || objEvent.keyCode == 97) {
objEvent.preventDefault();
}
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
编辑:根据您的评论进行修改以允许输入.
编辑2:如果你包含jQuery UI,你可以使用disableSelection()而不是disableTextSelect(),否则试试这个.
编辑3:抱歉,在jQuery 1.9中不推荐使用disableSelection(),请参见此处..尝试这个简单的hack而不是disableSelection().objEvent.disableTextSelect();用objEvent.preventDefault();以上代替 .
编辑4:使它更清洁.