我有下面的代码用于模拟文本框:
<label for="alertCmpVal">ALERT VALUE:</label> <span class="center textBox displayField highlight" id="alertCmpVal" contenteditable> <?php print $alert_val;?> </span>
我需要知道内容何时发生变化,例如我点击它,然后将其从0更改为1.
我试过了:
$(document).ready(function() { $(document.body).on('change','#alertCmpVal',function() { alert("boo"); $('#alertCmpVal').removeClass('highlight'); }) }
但这似乎不起作用.
(n.b. $(document.body)被使用,因为在我的主页面上,初始字段是动态加载的)
我猜它是不喜欢它的’变化’,但却看不出要用什么代替它. (jQuery / HTML5很好,因为它只在内部使用).
我已经看过一些例子,但它们通常似乎是针对更复杂的场景,需要多个函数来检测某些其他事情发生时的变化,但我认为必须有一个类似于on change方法的更简单的解决方案.
解决方法
您可以使用此事件DOMSubtreeModified:
$("span").on('DOMSubtreeModified',function () { alert("Span HTML is now " + $(this).html()); });
片段
$(function () { $("a").click(function () { $("span").html("Hello,World!"); }); $("body").on('DOMSubtreeModified',"span",function () { alert("Span HTML is now " + $(this).html()); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <span>Hello</span> <a href="#">Click</a>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。