Javascript jquery返回触发器
我使用JQuery将函数附加到元素:Javascript jquery返回触发器,javascript,jquery,events,Javascript,Jquery,Events,我使用JQuery将函数附加到元素: $("button").on("random", function() { 但我希望函数返回一个结果: alert('called'); return 'button has been clicked'; } 问题是,当我使用“trigger”来触发函数时,函数会执行,但结果不会返回,而是返回JQuery元素(我想) $("a"
$("button").on("random",
function() {
但我希望函数返回一个结果:
alert('called');
return 'button has been clicked';
}
问题是,当我使用“trigger”来触发函数时,函数会执行,但结果不会返回,而是返回JQuery元素(我想)
$("a").on("click",
function() {alert($('button').trigger('random'));}
)
如何编写或调用函数以返回其结果
JSFiddle:
谢谢。您不能向触发器返回值,但可以存储其值。一种方法是将对象传递给调用并在其中存储值
$(document).ready(function() {
$("button").on("random",
function(e, obj) {
alert('called');
obj.value= 'button has been clicked';
}
);
$("a").on("click",
function()
{
var infoObj = {value: ''}; $('button').trigger('random',[infoObj]);
console.log(infoObj.value)}
)
}
)
Another way is using jQuery's `.data()` method.
$(document).ready(function() {
$("button").on("random",
function(e, obj) {
alert('called');
obj.value= 'button has been clicked';
}
);
$("a").on("click",
function()
{
var infoObj = {value: ''}; $('button').trigger('random');
alert(infoObj.value)}
)
}
)
另一种方法是使用.triggerHandler()
而不是.trigger()
。
不过我建议你先看一下这些文件,看看是否符合你的要求。但它确实解决了这个问题
$(document).ready(function() {
$("button").on("random",
function(e) {
alert('called');
return 'button has been clicked';
}
);
$("a").on("click", function() {
alert($('button').triggerHandler('random'));
})
})
调用触发器时不要再次发出警报。函数本身执行“警报”。@AliSheikhpour,警报是用来显示错误的,实际上,触发器会在一行中产生两个警报-用于触发函数并显示返回的数据。但是-返回的数据不是函数触发的结果,这是我的问题。我确实想到了这一点,但感觉相当混乱。。。“如果在接下来的几天里没有更好的选择,我会接受你的。”博伊斯维特补充道。谢谢,我应该想到triggerHandler!它解释了当触发器作为事件响应的一部分调用函数时,函数结果不出现的原因。
Another way is using jQuery's `.data()` method.
$(document).ready(function() {
$("button").on("random",
function(e, obj) {
alert('called');
obj.value= 'button has been clicked';
}
);
$("a").on("click",
function()
{
var infoObj = {value: ''}; $('button').trigger('random');
alert(infoObj.value)}
)
}
)