Javascript 有没有一种简单的方法可以通过jQuery在事件中调用内部函数?
我希望调用事件Javascript 有没有一种简单的方法可以通过jQuery在事件中调用内部函数?,javascript,jquery,Javascript,Jquery,我希望调用事件$('.CssDeleteFolder')中的函数。在代码1中的函数cc()中单击(函数(){}) 代码2可以做到这一点,但我认为它太复杂了,有简单的方法吗 代码1 function cc(){ //How to invoke $('.CssDeleteFolder').click(function () event } $('.CssDeleteFolder').click(function () { var fileName = GetHiddenFilen
$('.CssDeleteFolder')中的函数。在代码1中的函数cc()中单击(函数(){}
)
代码2可以做到这一点,但我认为它太复杂了,有简单的方法吗
代码1
function cc(){
//How to invoke $('.CssDeleteFolder').click(function () event
}
$('.CssDeleteFolder').click(function () {
var fileName = GetHiddenFilename(this);
var defaultname = fileName.replace(/^.*[\\\/]/, '');
defaultname = decodeURIComponent(defaultname);
if (confirm('Do you want to delete the folder ' + defaultname + ' and all the sub-folders ?')) {
location.href = "actiondeletefolder.htm?fullfilename=" + fileName + "&origurl=" + GetOrigUrl() + AdditionalURL();
}
});
代码2
function aa(){
//Do something
bb();
}
$('.CssDeleteFolder').click(function () {
bb();
});
function bb(){
var fileName = GetHiddenFilename(this);
var defaultname = fileName.replace(/^.*[\\\/]/, '');
defaultname = decodeURIComponent(defaultname);
if (confirm('Do you want to delete the folder ' + defaultname + ' and all the sub-folders ?')) {
location.href = "actiondeletefolder.htm?fullfilename=" + fileName + "&origurl=" + GetOrigUrl() + AdditionalURL();
}
}
这非常简单。我假设您使用的是jquery。您可以调用任何元素的click事件,如:
$('.CssDeleteFolder').trigger('click'); // This will fire the click event manually.
可以使用以下语法触发附加到控件的任何事件:
$('YourSelector').trigger('eventName');
您可以使用$('.CssDeleteFolder')。单击()
或同义$('.CssDeleteFolder')。触发(“单击”)
以触发单击事件
然而,对我来说,这似乎是一种糟糕的代码气味。
如果您的函数提供了可重用的行为,那么最好使用命名函数并将其绑定,而不是使用匿名处理程序触发事件。
如果这个函数需要从其他地方调用(或者可能需要调用),我建议使用第二种方法。您可能还希望使用非全局上下文(即使用IIFE)来避免污染全局命名空间
顺便说一句,你可以做:
$('.CssDeleteFolder').click(bb);
而不是
$('.CssDeleteFolder').click(function () {
bb();
});
这就是你想要的:
function cc(){
$('.CssDeleteFolder').click();
}
$('.CssDeleteFolder').click(function () {
var fileName = GetHiddenFilename(this);
var defaultname = fileName.replace(/^.*[\\\/]/, '');
defaultname = decodeURIComponent(defaultname);
if (confirm('Do you want to delete the folder ' + defaultname + ' and all the sub-folders ?')) {
location.href = "actiondeletefolder.htm?fullfilename=" + fileName + "&origurl=" + GetOrigUrl() + AdditionalURL();
}
});
这是你做这件事最简单的方法。。