javascript - 覆盖jquery中的show方法

标签 javascript jquery

正在编辑一个网络应用程序(不是我的代码),并且当出现一些消息或通知时会显示很多模式 所以我想为该模式添加声音

这个模式存在于整个应用程序中的问题,以及我应该跟踪和添加声音的很多 jquery .show 方法

 $('#ajax_alert').show();

我尝试监听更改,例如 css 属性的更改,但没有成功

$('#ajax_alert').on("change",function(){
//make sound
})

如何覆盖 show 方法?我可以通过检查触发的 id 是否为 ajax_alert 来触发其中的声音,播放该声音!

最佳答案

我同意这样的评论,即这可能不是最好的主意,而且看起来有点老套,但它可以做到。

那么 JQuery .show() 方法所做的只是将元素的 CSS 更改为 display: block; 对吗?因此,您可以覆盖 .show 方法,但告诉它继续这样做,然后添加一些附加功能:

jQuery.fn.show = function() {
   this.css('display', 'block');
   setTimeout(() => alert('My very own added functionality'), 0); // Newly added functionality
   return this;
};

$('a').click(function() {
   $('div').show()
})
div {margin-top: 20px; background-color: blue; height: 60px; width: 60px; display: none;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#">Click to show div</a>
<div></div>

工作 JSFiddle here :

关于javascript - 覆盖jquery中的show方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61063600/

相关文章:

javascript - Bootstrap 4 轮播淡入淡出动画无法正常工作

javascript - Angular Directive(指令)生成的输入元素不显示值

jQuery 动画 SVG 元素

javascript - PDF 文档无法在移动设备中的 fancybox 内打开,因此当我单击在这些设备中打开 PDF 时,我不想打开空白的 fancybox

javascript - Safari ipad 作为 parseFloat 的结果返回 int

javascript - 如何更改 React Hooks 中 Provider 的值

javascript - 不推荐使用 globalstorage。请改用本地存储

javascript - 间隔函数更新秒数如何影响分钟数?

javascript - 确定 JavaScript 值是否为 "integer"?

jQuery SimpleModal 在 AJAX 请求后调整大小