当前位置: 首页 > 面试题库 >

如何使用jQuery在类更改时触发事件?

郭鸿信
2023-03-14
问题内容

我想要类似的东西:

$('#myDiv').bind('class "submission ok" added'){
    alert('class "submission ok" has been added');
});

问题答案:

类更改时不会引发任何事件。另一种方法是在以编程方式更改类时手动引发事件:

$someElement.on('event', function() {
    $('#myDiv').addClass('submission-ok').trigger('classChange');
});

// in another js file, far, far away
$('#myDiv').on('classChange', function() {
     // do stuff
});

更新

这个问题似乎正在吸引一些访问者,因此这里是一种更新方法,可以使用该方法而不必使用new修改现有代码MutationObserver

var $div = $("#foo");

var observer = new MutationObserver(function(mutations) {

  mutations.forEach(function(mutation) {

    if (mutation.attributeName === "class") {

      var attributeValue = $(mutation.target).prop(mutation.attributeName);

      console.log("Class attribute changed to:", attributeValue);

    }

  });

});

observer.observe($div[0], {

  attributes: true

});



$div.addClass('red');


.red { color: #C00; }


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="foo" class="bar">#foo.bar</div>

请注意,MutationObserver只能用于更新的浏览器,特别是Chrome 26,FF 14,IE 11,Opera
15和Safari6。如果需要支持旧版浏览器,则需要使用我在第一个示例中概述的方法。



 类似资料:
  • 问题内容: 我有一个div,其内容可能会以各种方式更改:例如,可以通过innerHTML重新加载其整个内容,或者可以通过DOM方法添加节点。反过来,这可能是通过本地javascript发生的,也可能是通过调用jQuery API或其他库间接发生的。 我希望在div的内容改变为执行一些代码,但我 绝对没有控制 上 如何 将改变。确实,我正在设计一个可供其他人使用的小部件,他们可以自由选择自己喜欢的d

  • 问题内容: 如果使用jQuery添加或更改CSS类,如何触发事件?更改CSS类是否会触发jQuery 事件? 问题答案: 每当您在脚本中更改类时,都可以使用A 引发自己的事件。 但是否则,没有什么办法可以在类更改时触发事件。仅在焦点离开输入已更改的输入后才触发。

  • 目前我在主干中有这个功能。 它会在触发onChange事件时更新模型。 我正在使用react的datepicker组件在这个模型中添加一个日期字段,但是主干的这个函数在我选择日期时不会触发onChange事件。这是一个组件:https://github.com/Hacker0x01/react-datepicker 在我的组件中,我手动触发了“更改”事件 这很好,但当我在datepicker中选择

  • 问题内容: 我正在使用Chrome扩展程序,我想检测用户何时键入URL。我知道: 但是,只要URL更改(例如,页面自动重新加载或用户单击链接等),它就会被调用。 我希望能够仅通过用户输入URL来确定URL是否已更改。 问题答案: 您可以使用(MDN)事件获取此信息。事件侦听器接收属性(MDN),该属性根据导航的原因将是不同的值(MDN)。哪个值,您触发将取决于 正是 您所渴望的东西。对于你的描述,

  • 当用户滑动滑块时,我试图触发一个事件,当滑动停止时,该值会更改。根据jQuery文档,对于这种情况,事件是理想的选择。所以我正在尝试: 然而,我观察到,当我向右拖动滑块并再次将其拖回起点(页面加载时滑块的初始位置)时,警报仍会触发。这是jQuery错误吗?如果没有,我该如何解决这个问题?

  • 我制作了一个滑块,它的额外功能是允许用户轻松地将其设置为精确的中心。试试看它是如何在中间停止的,但是如果你继续拖着它穿过停止区或者拖拽它,你可以在任何地方滑动它。 如果用户将滑块旋钮拖动到中点并释放鼠标,那么“粘性”应该被移除,这样当用户再次开始拖动时,它就不会开始“卡住”。 问题是,如果用户将其滑离起始点的中点,然后将其滑回中点,事件将不会触发,因为最终值实际上没有改变。 我尝试使用/而不是,但