我想知道body标签内的光标位置。实际上我想要的是,如果光标位置在具有类编辑的span标签内,那么我想在按Enter键时阻止光标跳到新行。如果光标位置超出span标记,则按Enter键时光标将跳转到新行。如果您通过示例提供解决方案,我将非常感谢您。 我在javascript中不是那么强大。我知道要停止光标跳到新行。这个代码将是。
$('p').keydown(function(e){
e.preventDefault();
});
但在我的情况下,只有当光标位于span标记内时才能进行预防。
提前致谢。
答案 0 :(得分:1)
试试这个:
var canPressEnter = true;
$("span.edit").on("focus", function(){
canPressEnter = false;
}).on("keypress", function(e){
var code = (e.keyCode ? e.keyCode : e.which);
if (canPressEnter === false && code === 13)
{
e.preventDefault();
}
}).on("blur", function(){
canPressEnter = true;
});
http://jsfiddle.net/hescano/S6hzY/
如果您不需要来自其他地方的旗帜,则可以:
$("span.edit").on("keypress", function(e){
var code = (e.keyCode ? e.keyCode : e.which);
if (code === 13)
{
e.preventDefault();
}
});
http://jsfiddle.net/hescano/S6hzY/1/
这对我有用:
tinyMCE.init({
theme : "advanced",
mode: "exact",
elements : "elm1",
setup : function(ed) {
ed.onInit.add(function(ed, evt) {
tinymce.dom.Event.add(ed.getDoc(), 'keydown', function(e) {
var existing = tinyMCE.get('elm1').getElement(e);
var code = (e.keyCode ? e.keyCode : e.which);
var spans = tinyMCE.activeEditor.getBody().getElementsByTagName("span");
if (spans.length > 0)
{
for (var i = 0; i < spans.length; i++)
{
if (spans[i].getAttribute("class") === "AMedit")
{
if (code === 13)
{
e.preventDefault();
}
}
}
}
});
});
},
themes...
答案 1 :(得分:0)
如果没有选择,您可以使用属性.selectionStart或.selectionEnd(没有选择它们是相同的)。
var cursorPosition = $('#myTextarea').prop("selectionStart");
请注意,旧浏览器不支持此功能,最明显的是IE8 - 。
答案 2 :(得分:0)
希望这可能对您有所帮助。
$('#myarea')[0].selectionStart; // return start index of cursor