【问题标题】:JQuery: how to name click functions?JQuery:如何命名点击函数?
【发布时间】:2016-05-21 06:16:58
【问题描述】:

我有一个脚本,我需要能够命名我的一些匿名点击函数。例如,这里有一些代码:

文件准备好了:

$(function(){

$('#map').imagemap([
        {top_x: 1,top_y: 2,bottom_x: 290,bottom_y:380,callback: #id1 anonymous function},
        {top_x: 275,top_y: 2,bottom_x: 470,bottom_y:380,callback: #id2 anonymous function},
        {top_x: 460,top_y: 2,bottom_x: 701,bottom_y:380,callback: #id3 anonymous function}
    ]);

$('#id1').click(function() {
    ....
});

$('#id2').click(function() {
    ....
});

$('#id3').click(function() {
    ....
});
...
});

如何编写我的回调以便不必在document.ready 之外复制代码?我尝试按照callback: 将其全部内联,但没有奏效。那么我应该用什么来代替我的匿名函数回调调用呢?

【问题讨论】:

  • 功能是一样的还是不同的?
  • 它们是三种不同的点击功能。

标签: javascript jquery


【解决方案1】:

听起来你想让click 函数使用一个命名函数,该函数可以从代码的其他地方调用。如果是这样,只需在 jQuery 就绪函数之外定义函数并在 click 方法中按名称使用它们。

function id1Click() { 
  ...
}

...
$(function() {
  $('#id1').click(id1Click);
});

【讨论】:

  • 这就是我想要的。谢谢 JaredPar。
  • @shummel7845 - 请确保您接受@JaredPar 的回答(单击他回答左侧的复选标记)。这使他在社区中享有盛誉,并且还可以帮助其他人在遇到相同问题时轻松找到此答案。谢谢!
  • 为什么他们让我们等待才能接受?有时这就是我不接受(或者如果他们不提供答案)的原因。
  • @shummel7845 我相信这是为了解决“西部最快的枪支”问题。 meta.stackexchange.com/questions/9731/…
【解决方案2】:

而不是像您的示例中那样使用匿名函数

$('#id3').click(function() {
    ....
});

你可以在别处定义你的函数并使用那个函数

$('#id3').click(myClickCallback);

function myClickCallback{
 ...
}

【讨论】:

    【解决方案3】:
    function id1_click() { ... }
    function id2_click() { ... }
    function id3_click() { ... }
    
    $(function(){
    
    $('#map').imagemap([
            {top_x: 1,top_y: 2,bottom_x: 290,bottom_y:380,callback: id1_click },
            {top_x: 275,top_y: 2,bottom_x: 470,bottom_y:380,callback: id2_click },
            {top_x: 460,top_y: 2,bottom_x: 701,bottom_y:380,callback: id3_click }
        ]);
    
    $('#id1').click(id1_click);
    $('#id2').click(id2_click);
    $('#id3').click(id3_click);
    ...
    });
    

    【讨论】:

    • 感谢您的详尽回答,但 Jared 击败了您。
    猜你喜欢
    • 2011-07-08
    • 2013-04-26
    • 2014-07-19
    • 1970-01-01
    • 2012-03-15
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多