Как определить событие изменения контента на div
Я пытаюсь сделать редактор все отлично работает до сих пор, но теперь мне нужно сделать обработчик, который мог бы обнаружить любые изменения, сделанные в div или любом содержимом, отредактированном в div
<?php $row="testing content" ?>
<!-- my editor section-->
<div id="editor">
<div id="options">
<span><a id="iimg">Insert Image from gallery</a></span>
<span>Upload image to gallery</span>
<span><a id="iheading">Heading</a></span>
</div>
<div id="product_descriptioncontent" contenteditable="true"><?php echo $row; ?>
</div><!-- viewable editor -->
<input type="hidden" name="textareacontent" value="" id="textareacontent" >
<!-- hidden field to submit values -->
</div>
<!-- end of editor section -->
<div id="imc"></div> <!-- image gallery loading section -->
<script>
$(document).ready(function(){
$('#iheading').click(function(){
$('#product_descriptioncontent').append('<h1>Heading</h1>');
});
$('#iimg').click(function(){
$('#imc').load('imagegallery.php',function(){
$('#gallery img').on('click',function(){
$('#product_descriptioncontent').append('<img src="http://localhost/sites/site_pics/otherpic/1.png"><br> ');
});
});
});
$('#product_descriptioncontent').change(function(){
alert("pppp");// how to capture this event
});
});
</script>
Я поместил немного своего кода в jsfiddle http://jsfiddle.net/bipin000/UJvxM/1/
спасибо за ваше драгоценное время
Ответы
Ответ 1
Вам это нравится? http://jsfiddle.net/Ralt/hyPQC/
document.getElementById( 't' ).onkeypress = function( e ) {
var evt = e || window.event
alert( String.fromCharCode( evt.which ) )
}
Он не ждет события change
, это вроде бессмысленно.
Вместо этого он прослушивает событие onkeypress
. Каждый раз, когда пользователь меняет содержимое этого div (добавляя к нему символ), он запускает событие.
Вы также можете увидеть, как получить нажатый символ (используя String.fromCharCode( evt.which )
).
PS: полное решение jQuery для вашего конкретного случая будет следующим:
$( '#product_descriptioncontent' ).on( 'keypress', function() {
$( '#your-hidden-input' ).val( $( this ).text() )
// Or
$( '#your-hidden-div' ).text( $( this ).text() )
} )
Ответ 2
Попробуйте этот пример, вы можете связать настраиваемое событие с div и вызвать это событие при изменении
Ответ 3
Попробуйте добавить обработчик для DOMCharacterDataModified. Возможно, это более чистое решение.