Я провел несколько тестов в качестве обновлений / 93, / 94, / 95 вашей скрипки и обнаружил, что вынесенные формулы могут перемещаться, но все это было хрупким. Иногда простое изменение или просто обновление страницы приводило бы к тому, что отображаемые незаписанные формулы показывались бы, каждый из которых удваивался, что я не могу объяснить.
Как вы увидите, я думал, что setTimeout
исправит но теперь я не думаю, что это так.
Я думаю, что ошибка - это просто функция запуска кода в jsFiddle. Я не могу вызвать ошибку при запуске кода на тестовой странице, обслуживаемой локально в файле file: // с моего компьютера и просмотренном в Opera.
Вот моя тестовая страница:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Test kineticJS lib - jsFiddle demo</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.7.1.js'></script>
<style type='text/css'>
body {
margin: 10px;
}
.jax {
display: none;
}
#list1, #list2 {
margin: 10px 0;
padding: 5px;
border: 1px solid #000;
}
</style>
<script type='text/javascript'>
$(window).load(function(){
function listArray($ul) {
$(".jax").each(function(i, j){
var li = $("<li/>").append($(j).text());
$ul.append(li);
});
};
//move formulas from original spans into list1
listArray($("#list1") );
//on click move formulas between list1 and list2
$("#moveUp").on('click', function() {
$("#list2 li").eq(0).appendTo($("#list1"));
});
$("#moveDown").on('click', function() {
$("#list1 li").eq(0).appendTo($("#list2"));
});
});
</script>
</head>
<body>
<head>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
</head>
<body>
<span class="jax">\(\mathbb{Q}\)</span>
<span class="jax">\(\mathbb{Z}\)</span>
<ul id="list1"></ul>
<button id="moveDown">Move Down</button>
<button id="moveUp">Move Up</button>
<ul id="list2"></ul>
</body>
</body>
</html>