函数调用中的Javascript
我的客户的网店有一个定制的产品配置程序,它有一个函数调用中的Javascript,javascript,jquery,event-listener,Javascript,Jquery,Event Listener,我的客户的网店有一个定制的产品配置程序,它有一个窗口。build\u preview功能 这个方法可以在任何时候调用,但我想检查它何时被调用。 jQuery有一个.on方法,但它只适用于DOM eventlisteners 可以在JS中侦听函数调用吗? 例如: $(window).on(build_preview(), function() { alert('Function has been called somewhere else!'); }) 您可以创建和分派自定义事件 cons
窗口。build\u preview
功能
这个方法可以在任何时候调用,但我想检查它何时被调用。
jQuery有一个.on
方法,但它只适用于DOM eventlisteners
可以在JS中侦听函数调用吗?
例如:
$(window).on(build_preview(), function() {
alert('Function has been called somewhere else!');
})
您可以创建和分派自定义事件
const event = new Event('build_preview');
// Listen for the event.
window.addEventListener('build_preview',
function (e) {
alert("function has been called somewhere else")
},
false);
// Dispatch the event inside your function build_preview so that whenever it
// is called this event is emitted.
window.dispatchEvent(event);
有关更多信息,请检查您可以创建并发送自定义事件
const event = new Event('build_preview');
// Listen for the event.
window.addEventListener('build_preview',
function (e) {
alert("function has been called somewhere else")
},
false);
// Dispatch the event inside your function build_preview so that whenever it
// is called this event is emitted.
window.dispatchEvent(event);
有关更多信息,请检查您可以重载原始函数,在新版本中触发自定义事件,并为自定义事件添加事件侦听器 只需确保在重载代码之前已经声明了原始代码
//原始函数声明
window.build\u preview=函数(){
console.log('.build_preview()调用')
}
//存储对原始函数的引用
const origFn=window.build\u预览
//重载函数
window.build\u preview=函数(){
//称为原创
origFn();
//触发自定义事件
$(window.trigger('build\u preview'))
}
//自定义事件侦听器
$(窗口).on('build\u preview',function(){
log('从build_preview()调用触发的事件');
})
单击我
可以重载原始函数并在新版本中触发自定义事件,并为自定义事件添加事件侦听器
只需确保在重载代码之前已经声明了原始代码
//原始函数声明
window.build\u preview=函数(){
console.log('.build_preview()调用')
}
//存储对原始函数的引用
const origFn=window.build\u预览
//重载函数
window.build\u preview=函数(){
//称为原创
origFn();
//触发自定义事件
$(window.trigger('build\u preview'))
}
//自定义事件侦听器
$(窗口).on('build\u preview',function(){
log('从build_preview()调用触发的事件');
})
单击我
谢谢!这对我有用。但是有没有一种方法可以将数据传递给侦听器呢?您可以使用自定义事件。查看上面的链接,您将在js const event=new CustomEvent('build',{detail:elem.dataset.time})中找到与自定义事件相关的所有内容;非常感谢。这对我有用。但是有没有一种方法可以将数据传递给侦听器呢?您可以使用自定义事件。查看上面的链接,您将在js const event=new CustomEvent('build',{detail:elem.dataset.time})中找到与自定义事件相关的所有内容;