У меня есть некоторые проблемы с вставкой формул MathJax
. Я хочу, чтобы этот пользователь мог вставлять курсор между каждой формулой и поэтому может принимать формулу insert
.Правильное положение курсора между формулами MathJax
Мой код:
function get(elem)
{
currentFormul = elem;
var math = MathJax.Hub.getAllJax(elem)[0];
var input = document.getElementById("MathInput");
input.value = math.originalText;
}
function input()
{
sel = window.getSelection();
var range = sel.getRangeAt(0);
var input = document.getElementById("MathInput");
var span = document.createElement("span");
span.contentEditable="false";
span.addEventListener('click', function() { get(this); }, true);
span.innerHTML = "\\("+input.value+"\\)";
range.insertNode(span);
MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
}
</script>
<body contenteditable="true" spellcheck="false">
<span contenteditable="false">
<button onclick="change()">Change!</button>
<input id="MathInput" size="60" />
<button onclick="input()">INPUT!</button>
<button onclick="someChanges()">FONT!</button>
</span>
<p>S</p>
<span onclick="get(this)" contentEditable="false">\(\color{red}{x=ax^2}\)</span>
<span onclick="get(this)" contentEditable="false">\(x=ax^2\)</span>
<span onclick="get(this)" contentEditable="false">\(x=ax^2\)</span>
</body>
</html>
Теперь я не могу вставить cursor
между формулой для новых элементов, но может для старых. Может ли кто-нибудь сказать мне, как это сделать?
Спасибо за ответ, но если я удалить пространство между формулами, то я не могу вставить курсор между ними в следующий раз. Как это исправить? –
Я на самом деле предлагаю вам добавить пробел между вашими новыми формулами. В вашем вопросе вы говорите, что это работает для старого элемента, но не нового. Причина в том, что это пробелы. Если это то, что вам нужно, добавьте пробел между вашими новыми и старыми формулами. –