我有一个jQuery函数,如下所示。我想在我的javascript中调用该函数,无论触发事件是否发生。换句话说,在某些情况下我只想调用下面的函数。可能吗?
$(document).on('change', '.jq__pAC', function(event) {
// some working code
}); // end .on('change')
答案 0 :(得分:3)
只需使用change()
;在没有传递函数的情况下,此方法会触发操作,而不是处理它:
$(document).on('change', '.jq__pAC', function(event) {
// some working code
}).change();
或者,您可以使用trigger()
,它会以字符串形式触发传递给方法的事件:
$(document).on('change', '.jq__pAC', function(event) {
// some working code
}).trigger('change');
参考文献:
答案 1 :(得分:3)
您可以将功能与on
方法分开,如下所示:
$(document).on('change', '.jq__pAC', handlerFunction);
function handlerFunction(event) {
// some working code
}
// at some other point in your code you can call:
handlerFunction();
PS:为了完成起见,我建议您在event
方法中提取on
变量,并仅将相应的信息传递给handlerFunction
。像这样:
$(document).on('change', '.jq__pAC', function(event) {
var nodename = event.target.nodeName;
handlerFunction(nodename);
});
function handlerFunction(nodename) {
// some working code
}
// at some other point in your code you can call:
handlerFunction('div');
答案 2 :(得分:2)
执行此操作的最佳方法如下:
function myFunction(event)
{
// code stuff here
}
...
$(document).on('change', '.jq_pAc', myFunction);
这样,您可以自行决定调用您的函数,更改事件也会调用它。
答案 3 :(得分:0)
因此,在经过测试和更改事件几分钟后,我注意到它仅适用于输入元素。
$(document).on('change', '.myCart-val', function(){
if ($('.myCart-val').html() == "0") {
$('.myCart-val').hide();
} else {
$('.myCart-val').show();
}
});
我注意到的是,要使该功能真正生效,我需要将其应用于某种类型的onclick事件,并且两者需要相互欣赏。
我终于找到了一个更好的解决方案,其中包括Mutation Events。突变事件允许我的函数在被另一个函数触发时相应地运行。
我的最终解决方案。
if ($('.myCount').text() == "0"){$('.CartCount').hide();}
$('.myCart-val').on('DOMSubtreeModified', function() {
if ($(this).text() == "0") {
$(this).hide();
} else {
$(this).show();
}
});
我找到了答案here..希望对您有帮助