jquery - 我如何覆盖 jquery show() 事件?
问题描述
我正在尝试覆盖库元素的显示行为并将其替换为 slideDown。是否可以使用 jQuery 覆盖或修改单个选择器的预先存在的功能?
就像是
$(".library-class").onShow(function (event){
$(event.target).slideDown();
});
我试过 on() 函数。这不显示警报
$('.library-class').on("show", function(event) {
alert("working!");
});
这会覆盖所有选择器的 show(),但不会覆盖单个选择器:
jQuery.fn.show = function() {
// Your custom code
}
谢谢
解决方案
谢谢拉胡尔的简单优雅的回答。
(function($) {
$.each(['show', 'hide'], function(i, ev) {
var el = $.fn[ev];
$.fn[ev] = function() {
this.trigger(ev);
return el.apply(this, arguments);
};
});
})(jQuery);
$(document).ready(function() {
$('#foo').on('show', function() {
console.log('#foo is now visible');
});
$('#foo').on('hide', function() {
console.log('#foo is hidden');
});
$("#togle").on("click", function() {
$("#foo").toggle();
})
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="foo">this is test the thunder</div>
<input type="button" id="togle" value="Toggle" />
推荐阅读
- c# - 如何使用输出参数实现 azure 异步函数
- database - SequoiaDB导入工具如何使用?
- php - 检查一个数组的值是否存在于另一个数组中
- javascript - Javascript将地理位置作为字符串变量传递
- android - Activity 中的奇怪行为 ViewModel 观察者调用方法 - MVVM 架构
- python - 如何在 Python 3 中将 PNG 数据的 hexdump 字符串转换为二进制?
- javascript - 如何修复设备相机不支持移动浏览器 React Js 的问题
- redis - Redis在redis服务器启动/重启时删除和设置密钥
- c# - 如何在调整窗口大小时保持视频播放器的宽高比适合屏幕
- php - 无法在 php 文件中获取值