4

有没有办法确定 HTML 标签的内容何时发生了变化?我宁愿捕捉一个事件而不是轮询它。

我的用例是我在富文本编辑器中的 span 标签中包含文本,当用户修改封闭文本时,我需要删除 span 标签。

4

4 回答 4

3

您是否使用典型的所见即所得编辑器之一,并且不想更新他们的代码以破坏可更新性?然后,也许您可​​以收听 WYSIWYG 编辑器发送的 onTextChange 事件(或类似事件),检查更改的内容,然后对此做出反应。

只是一个想法,因为您在问题中提供的信息太少了。

于 2010-01-22T16:29:49.443 回答
0

我认为没有可用的事件(输入元素除外),但是您可以对其进行轮询。

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

var originalHtml = $element.html();

var pollHtml = setInterval(function() {

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

}, 100);
于 2010-01-22T02:03:33.490 回答
0

我无法添加评论,所以我在这里提出我的建议,

@贾斯汀约翰逊

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

如果是这样的话,我相信我们可以触发触发器......

于 2010-01-22T02:18:15.473 回答
0

您必须使用 JavaScript 以某种方式修改 DOM。在大多数情况下,轮询是一个坏主意。我在这里设置了一个演示,它可以让您很好地了解如何检查 HTML 是否有更改。只需在需要时调用该函数......即使它只是轮询。

于 2010-01-22T04:25:01.057 回答