【发布时间】:2015-01-23 12:58:11
【问题描述】:
我的目标是编写一个事件,如果给定元素将获得一个类,或者当这个类被删除时,该事件将触发。
假设我有:
<button id="my_butt_show">showtime</button>
<button id="my_butt_hide">hide me</button>
<span id="the_changer"></span>
<span id="the_end">some text</span>
<script>
// this is the part of code I can't edit!
$('#my_butt_show').click( function() {
$('the_changer').addClass('hiMom');
});
$('#my_butt_hide').click( function() {
$('the_changer').removeClass('hiMom');
});
</script>
现在我想要这样的东西:
<script>
$("#the_changer").onClassAdd('hiMom', $("#the_end").display('true') );
$("#the_changer").onClassRemove('hiMom', $("#the_end").display('false') );
</script>
jQuery(或者 js 本身可能?)有这样的东西吗?
注意 - 当然这只是一个例子,我正在处理的实际事情更难,虽然在这里我可以使用一些更简单的解决方案,但在我的主要任务中它不起作用。
感谢回复。
----编辑----
在第一个答案之后: 我无法访问“.click”或“addClass”所在的代码部分,所以我不能在那里做我的事情。
【问题讨论】:
-
有一个
MutationObserver,虽然直到版本 11 才在 IE 中实现。 -
如果这个问题已经被问过了,那么为什么有人可以投票?这也是投票!!!
-
这是我很久以前做的一个 sn-p。这可能会对您有所帮助:jsfiddle.net/o0f7abrr/1。只需将其添加到您的文件中。请注意,您可能需要使用委托而不是直接绑定。
-
@pbialy,您无法编辑的部分甚至都不正确;您在复制和粘贴时是否省略了某些部分?
-
您可以使用
event.stopImmediatePropagation()来阻止这些事件处理程序触发。然后您将编写自己的处理程序,如本演示中所示:jsfiddle.net/fiddleyetu/8jan08kp/2
标签: javascript jquery