определить, когда меняется содержимое HTML-тега - PullRequest
4 голосов
/ 22 января 2010

Есть ли способ определить, когда содержимое тега HTML изменилось? Я бы предпочел поймать событие, а не опрашивать его.

Мой вариант использования: у меня есть текст, заключенный в теги span в редакторе форматированного текста, и мне нужно удалить теги span, когда включающий текст изменяется пользователем.

Ответы [ 4 ]

3 голосов
/ 22 января 2010

Вы используете один из типичных редакторов WYSIWYG и не хотите обновлять их код, чтобы нарушить возможность обновления? Тогда, возможно, вы могли бы прослушать событие onTextChange (или что-то подобное), которое отправляет редактор WYSIWYG, проверить содержимое изменения и отреагировать на это.

Просто идея, учитывая, что вы даете слишком мало информации в своем вопросе.

0 голосов
/ 22 января 2010

Я не могу добавить комментарий, поэтому я размещаю свое предложение здесь,

@ Джастин Джонсон

$("#close-question-2114317").change(function() {alert(1);}); 
$("#close-question-2114317").text( function(){
    $(this).trigger('change'); 
    return "Close!!!";
});

Полагаю, мы можем вызвать триггер, если это так ...

0 голосов
/ 22 января 2010

Вы должны использовать JavaScript, чтобы каким-то образом изменить DOM. Опрос в большинстве случаев плохая идея. Я настроил демо здесь , которое дает вам хорошее представление о том, как вы можете проверить HTML на предмет изменений. Просто вызывайте эту функцию при необходимости ... даже если это просто опрос.

0 голосов
/ 22 января 2010

Я не думаю, что доступно событие (кроме элементов ввода), однако вы могли бы опросить его.

$element = $('#my-element');

var originalHtml = $element.html();

var pollHtml = setInterval(function() {

    if (originalHtml !== $element.html()) {
        alert('HTML changed!'); 
        clearInterval(pollHtml);
    };

}, 100);
...