我有3个按钮,我已经使用他们的calss创建了一个点击功能。
$('.abc').click(function(){
if (val).is(':visible')){
//do something
}
});
我有另一个点击功能,如下所示
$(".custom-rmenu li").click(function(){
// This is the triggered action name
switch($(this).attr("data-action")) {
// A case for each action.
case "case1": alert("first"); break;
case "case2": alert("second"); break;
case "case3": alert("third"); break;
}
});
我的问题是,我需要通过$('.abc').
点击功能触发$(".custom-rmenu li").
点击功能。如何将每个案例的值(val)传递给$('.abc').
点击功能?
答案 0 :(得分:2)
您可以在trigger
中传递参数,如下所示:
$( ".abc").trigger( "click", [ "myParam1", "myParam2" ] );
你可以得到参数:
$('.abc').click(function(e, myParam1, myParam2) {
文档:http://api.jquery.com/trigger/
trigger
签名:.trigger( eventType [, extraParameters ] )
答案 1 :(得分:2)
在jQuery触发器函数中,第一个参数是要触发的事件,你可以将任何其他数据作为第二个参数传递给数组,如下所示:
.trigger('click', [val1, val2]);
.on('click', function(event, val1, val2) { ... })
答案 2 :(得分:0)
这种不可思议的用法就像是您无法访问的类中的“观察者”,因为点击被生成JS动画的供应商所识别。
因此,在供应商中执行动画后,您可以在主要副作用类中调用内部的侦听器,从而触发观察者。
首先创建一个DOM对象作为观察者:
<a id='#observer'></a>
在您的主类中,声明观察者:
this.observer = $('#observer');
在同一类中,定义用于处理侦听器的函数:
registerHandlers() {
this.observer.off().click((e, params) => this[params.function](params.event));
}
最后,在动画后触发供应商内部的点击:
$('vendor-class').on('click', function (event) {
animationJs() // Vendor stuff...
$('#observer').trigger( "click", [ {
event,
function:"myFunctionToHandleVendor",
} ] );
}
注意:。伟大的成就是传递了一个包含多重变量的对象,从而将该对象放入数组中。
[{type:'secret', user:'Jonh', msg:'Paul is dead!'}]