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();
        }
});

这是你做这件事最简单的方法。。