功能很简单,但不起作用

时间:2010-09-03 14:21:36

标签: jquery

请告诉我这个脚本有什么问题:

$("#mydiv").click(function() 
    {
        console.log("something");
    }, function()
    {
        console.log("something");
    });

它不会成为第二个console

由于

5 个答案:

答案 0 :(得分:4)

click只需要一个功能。你对第二个功能的期望是什么?

要在第一个函数之后运行第二个函数,只需将它放在第一个函数的末尾即可。如果第一个函数异步执行某些操作,那么您需要将第二个函数作为第一个函数的回调附加。

$('#mydiv').click(function () {
    console.log('first something');
    console.log('second something');
});

或者可能喜欢:

$('#mydiv').click(function () {
    $(this).fadeOut(function () {
        console.log('second something');
    });
});

答案 1 :(得分:2)

您可以将两个函数编写为实际函数,然后从匿名函数中按顺序调用每个函数。像这样:

function a()
{
  console.log("something");
}

function b()
{
  console.log("something");
}

$("#id").click(function(){
  a();
  b();
});

答案 2 :(得分:1)

我认为你不能在这样的一个事件上绑定两个函数。除非它是专为它设计的,例如悬停。

答案 3 :(得分:1)

如上所述,click只需要一个处理程序。我想你需要调用它两次:

$("#mydiv").click(function() 
{
    console.log("something 1");
});
$("#mydiv").click(function()
{
    console.log("something 2");
});

答案 4 :(得分:0)

此处没有任何内容可以执行第二个匿名(未命名)函数。

编辑:如果你想要的是绑定“点击”的两个动作你可以绑定.mousedown和.mouseup函数而不是单元.click

EDIT2:基于注释,生成一个私有的执行函数序列:

$('#mybutton').click(function(){
    var one = function(){
        alert('one');
    };
    var two= function(){
        alert('two');
    };
    one();
    two();
});

要查看此操作,请访问:http://jsfiddle.net/R7aT3/