有没有一种简单的方法来在jQuery事件中调用函数?

时间:2017-03-13 08:02:56

标签: javascript jquery

我希望在代码1中的函数cc()中调用事件$('.CssDeleteFolder').click(function () {}中的函数。

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

3 个答案:

答案 0 :(得分:1)

这非常简单易行。我假设您正在使用jquery。您可以调用任何元素的click事件,例如:

$('.CssDeleteFolder').trigger('click'); // This will fire the click event manually.

您可以使用以下语法触发附加到控件的任何事件:

$('YourSelector').trigger('eventName');

答案 1 :(得分:1)

您可以使用$('.CssDeleteFolder').click()或同义$('.CssDeleteFolder').trigger("click")来触发click事件。

然而,对我而言,这似乎是一种糟糕的代码味道。 如果您的函数提供了可重用的行为,那么使用命名函数并绑定它而不是使用匿名处理程序触发事件是一个更好的主意。
如果需要从其他地方调用此函数(或者有可能需要调用它),我建议使用第二种方法。您可能还希望使用非全局上下文(f.i.,使用IIFE)来不污染全局命名空间。

顺便说一下,你可以这样做:

$('.CssDeleteFolder').click(bb);

而不是

$('.CssDeleteFolder').click(function () {
    bb();        
});

答案 2 :(得分:1)

这就是你要求的:

.*