javascript — функция jQuery прерывается при использовании переполнения стека

Я стремлюсь использовать contenteditable="true" div, чтобы я мог отобразить содержимое wp_content однако, как только это будет изменено, его необходимо отправить через <textarea> Я использую следующий jQuery для обновления текстовой области при любых изменениях в редактируемом div.

jQuery( "#contentEdit" ).keyup(function( event ) {
value = jQuery('#contentEdit').html();
jQuery("#myTextarea").val(value);
});

И у меня есть элементы, к которым это относится.

<div id="contentEdit" contenteditable="true">
<h1>some editable content</h1>
</div>
<textarea class="form-control" id="myTextarea" name="Description" rows="3">
<h1>some editable content</h1>
</textarea>

Это работает нормально … Однако, когда я пытаюсь добавить в <?php the_content(); ?> или даже echo the_content(); Это ломается, и я не могу получить код jQuery для обновления чего-либо.

Примером может быть:

<div id="contentEdit" contenteditable="true"><?php echo the_content(); ?></div>

РЕДАКТИРОВАТЬ: У меня есть это работает отлично на новой странице — кажется, что это не будет работать в модале начальной загрузки.

Мой jquery теперь выглядит так:

jQuery(document).ready(function () {
jQuery(document).on('keyup','#editableContent',function(){
value = jQuery('#editableContent').html();
jQuery("#myTextarea").val(value);
});
});

EDIT2
Теперь я знаю, что мне нужны уникальные идентификаторы. Я пытаюсь использовать следующее.

var editableID = 'editableContent<?php echo the_ID(); ?>';
var textAreaID = 'myTextarea<?php the_ID();?>';

jQuery(document).ready(function () {
jQuery(document).on('keyup', editableID ,function(){
value = jQuery(editableID).html();
jQuery(textAreaID).val(value);
});
});

РЕДАКТИРОВАТЬ 3

Я, наконец, получил это с помощью следующего:

jQuery(document).ready(function () {
jQuery(document).on('keyup', '#editableContent<?php echo the_ID(); ?>' ,function(){
value = jQuery('#editableContent<?php echo the_ID(); ?>').html();
jQuery('#myTextarea<?php echo the_ID(); ?>').val(value);
});
});

Будучи довольно новым для этого, было бы признательно, если кто-то может оптимизировать этот код? и посоветуйте мне, если это плохая форма ….

Спасибо заранее.

0

Решение

В PHP нет ничего конкретного, что могло бы сломать jQuery. jQuery работает через сгенерированный HTML с вашего веб-сервера (PHP), и проблема заключается в вашем сгенерированном HTML.

Когда вы запустите свое приложение, просмотрите сгенерированный HTML-источник и сравните его с желаемым HTML-шаблоном. Могу поспорить, что между ними есть существенные различия (я предполагаю, что вы успешно протестировали свое приложение с HTML-кодом, написанным вручную, а затем попытались абстрагировать этот HTML-код вручную в свой the_content() Функция PHP).

Чтобы было ясно, я ожидаю, что проблема в вашем the_content() функции, но я просто хотел отметить, что любая проблема, с которой вы сталкиваетесь, связана с вашей конкретной реализацией, а не с вашим архитектурным решением использовать PHP.

1

Другие решения

Других решений пока нет …