引入jQuery后网页textarea无法点击输入,无法定位问题原因
解决textarea无法点击输入的问题
问题根源在你给document绑定的mousedown事件处理函数里:你一开始就调用了event.preventDefault(),这会阻止所有鼠标按下操作的默认行为——包括点击textarea时获取焦点、输入内容这些核心操作,自然就没法用textarea了。
你只需要把event.preventDefault()移到右键点击的判断逻辑里就行,因为只有右键点击时才需要阻止默认的上下文菜单,左键点击不需要全局拦截:
修改后的代码片段:
$(document).on('mousedown', function (event){ // 移除全局的event.preventDefault() if(event.which == 3){ event.preventDefault(); // 只在右键点击时阻止默认行为 $('.hidden').removeClass('shown'); if ($(event.target).is('img')){ $('.saveimg, .newtab').addClass('shown'); } else if ($(event.target).is('a')){ $('.newtab').addClass('shown'); } console.log(event.pageY, event.pageX); $('#context').css({ top: event.pageY, left: event.pageX }); $('#context').fadeIn(); return false; } $('#context').fadeOut(); })
另外,你代码里的return false在右键逻辑里,它等同于event.preventDefault() + event.stopPropagation(),不过现在我们已经在里面加了event.preventDefault(),功能上是一致的,不影响使用。
改完之后,左键点击textarea就能正常获取焦点、输入内容了,右键的自定义菜单功能也能保留。
内容的提问来源于stack exchange,提问作者J Master J H
相关产品推荐
相关产品推荐

