2011-11-01 109 views
12

我有以下几点:如何命名和调用jQuery函数?

$('#EID').change(function() { 
       $.ajax({ 
        url: "/Administration/stats", 
        data: { DataSource: $('#DataSource').val(), 
          EID: $('#EID').val() 
        }, 
        success: function (data) { 
         $('#TID').html(data); 
        } 
       }); 
      }); 

这工作不错,但我希望能够在其他时间调用函数(),而不是仅仅EID变化时。有人可以告诉我如何将函数代码拉出到一个带有名称的单独块中,然后调用该函数名称。

回答

31
function doSomething() { 
    $.ajax(...); 
} 

$('#EID').change(doSomething); 

诺尔,你必须函数名后,因为要传递的功能,而不是它的返回值加()

如果你想一些参数传递给函数,你会做这样的:

function doSomething(someParam) { 
    $.ajax(...); 
} 

$('#EID').change(function() { 
    doSomething(whateverSomeParamShouldBe); 
}); 
+1

非常感谢。这正是我需要的。如果我想传递参数$('#EID')。val()那么我将如何声明参数然后在函数内部使用它? –

+0

@Samantha:通常最好的做法是包含一个包含所有东西的函数(称为“范围函数”),因为否则您会创建全局符号,并且Web浏览器中的全局空间已经足够拥挤。两个例子:http://pastie.org/2792207 –

+0

@Samantha:*“如果我想传递参数$('#EID')。val()那么我将如何声明该参数,然后在内部使用它函数?“* ThiefMaster在他的答案的后半部分中展示的方式,例如:http://pastie.org/2792210 –