【问题标题】:jQuery do something on class change [duplicate]jQuery对类更改做一些事情[重复]
【发布时间】: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


【解决方案1】:

您不能将该操作添加到事件 .click 中吗?该类是由一个事件添加的,所以同一个事件也应该能够触发您接下来想做的事情吧?

另见:jQuery - Fire event if CSS class changed

【讨论】:

  • 问题是我无法访问“.click”所在的代码部分。我可能应该在我的问题中注明,稍后将对其进行编辑。
猜你喜欢
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 2019-03-10
  • 2013-10-27
  • 1970-01-01
相关资源
最近更新 更多