JQuery调用多个内联函数

时间:2014-05-23 16:25:22

标签: javascript jquery

这是我的相关代码:

var dropdown = {
  init: function() {
    $(".dropdown").click(".dropdown", dropdown.openDropdown, dropdown.secondFunction);
  },  
  openDropdown: function() {
    ...
  }
}

如何在click事件中调用多个函数?我添加了我上面尝试做的事情。

修改

所以这是我的新代码与你们的帮助,我可以确认这两个函数都被调用,因为当我把警报放入它们都触发时,但由于某种原因,openDropdown内的代码现在不是工作。是因为我的$(this)引用是关闭还是什么?

var dropdown = {
  init: function() {
    $(".dropdown").click(".dropdown", function() { dropdown.openDropdown(); dropdown.closeDropdowns(); });
  },
  openDropdown: function() {
    $(this).children(".dropdown-menu").show();
    $(this).addClass("open");
  },
  closeDropdowns: function() {
    //$(".open").removeClass(".open");
    //$(".open").children(".dropdown-menu").hide();
  }
}

3 个答案:

答案 0 :(得分:2)

像这样:

var dropdown = {
  init: function() {
    $(".dropdown").click(".dropdown", function(){ this.openDropdown(); this.secondFunction()});
  },  
  openDropdown: function() {
...
  }
}

答案 1 :(得分:1)

你可以这样做:

$('.dropdown').on('click', function () {
  dropdown.openDropdown();
  dropdown.secondFunction();
});

如果您希望thisopenDropdown内的secondFunction成为您需要使用.call的元素。

var dropdown = {
  init: function() {
    $(".dropdown").on("click", function () {
      // The call makes `this` the element in the functions...
      dropdown.openDropdown.call(this);
      dropdown.secondFunction.call(this);
    });
  },  
  openDropdown: function() {
    console.log('openDropdown', this);
  },
  secondFunction: function() {
    console.log('secondFunction', this);
  }
};

dropdown.init();

答案 2 :(得分:1)

var dropdown = {
  init: function() {
    $(".dropdown").click(".dropdown", function() {dropdown.openDropdown(); dropdown.secondFunction(); 
  });
  },
  openDropdown: function() {
     // first function callback
       },
  secondFunction: function()   {
    // second call back 
  }
};

dropdown.init();

<强> DEMO