防止在 jquerymobile 中应用 class

Prevent application of a class in jquerymobile

如何强制 ui-btn-active 从不在任何地方设置?监听事件看起来很臃肿,因为我真的不知道它应用在哪里。

在网上搜索我只找到了非常过时的解决方案。

部分答案..

您可以覆盖原来的 $.fn.addClass 方法并在调用原来的 addClass 之前删除 className:

var _org = $.fn.addClass;
$.fn.addClass = function(className) {

  className = className.replace(/\bui-btn-active\b/g, '');

  return _org.call(this, className);
}

这不会保护您免受:

el.className = 'ui-btn-active';
$(el).html('<div class="ui-btn-active"></div>');
el.classList.add('ui-btn-active');
el.innerHTML = '<div class="ui-btn-active"></div>';

您可以删除 JS on mobileinit

中的 class
$(document).on("mobileinit", function () {
   $.mobile.activeBtnClass = "";
});