keypress事件未在移动设备上运行
我遇到的问题是,当用户在移动设备浏览器上键入时,事件处理程序未运行。
我的javascript代码是这样工作的:当用户编写someting并按空格键代码时,会自动为#(diez)
标签系统添加#(diez)
标签。 就像你写的: this is test message
,javascript代码改变它: #this #is #test #message
all after space。
如果您在计算机浏览器( Chrome, Safari, Firefox, Opera
)上查看此DEMO Chrome, Safari, Firefox, Opera
它可以正常工作。
但是,如果您在移动浏览器上检查此DEMO ,则在键入某些内容时,事件处理程序未运行。
$("body").on("keypress","#text", function(e) { var code = e.charCode || e.keyCode || e.which; if (charactersX.has(code)) { var text = $("#text").text(); text = addHashtags(text); $("#text").text(text); placeCaretAtEndX(document.querySelector("#text")); console.log(text); } else if (forbiddenCharactersX.has(code)) { e.preventDefault(); console.log("something"); } });
完整代码在这里 。
我用你的代码替换了$(document).on("keypress", "#textInpu", function(){.....})
部分代码,错误消失了:
$(document).on("textInput", "#text", function(event) { var code = event.originalEvent.data.charCodeAt(0); if (charactersX.has(code)) { // Get and modify text. var text = $("#text").text(); text = addHashtags(text); // Save content. $("#text").text(text); // Move cursor to the end placeCaretAtEndX(document.querySelector("#text")); } else if (forbiddenCharactersX.has(code)) { e.preventDefault(); } }); });
如果你想知道这是你的问题: android上的keyCode总是229
如果您用我提供的代码替换代码后有任何错误,请告诉我。
- Android上未显示“object”标记
- 离线HTML5或原生SDK,用于跨平台应用程序开发或JQUERY移动
- jQuery Mobile是否相当于Android的ViewPager?
- html5video标签未能在phonegap android中使用cordova 2.9.0和jquery1.9.0播放.mp4video?
- PhoneGap 1.5.0 Android Cordova AJAX JSON
- 无法从第二个包含的js文件中的第一个包含的javascript文件调用函数
- 从Phonegap使用ASP.NET Web服务
- 如何禁用Cordova Android中的YouTube背景播放?
- 你可以在Android上使用AJAX调用吗?