2013-11-20 20 views
0

У меня есть переменные, которые имеют в них несколько функций. Затем я хочу вызвать эти переменные в событии .click. Один работает отлично, но я хочу иметь два или даже больше. Как я могу это сделать? Ниже приведен код, который я ожидал бы работать.JQuery - две переменные в одном событии .click

var hideServices = function() { 
      jQuery(".services-inner").css({"opacity": "0"}); 
      jQuery(".insignia-inner").css({"opacity": "0"}); 
      jQuery(".insignia-inner-text").css({"opacity": "0"}); 
}; 

var showMilitaryKit = function() { 
      jQuery(".military-kit-inner").css({"opacity": "1"}); 
}; 

var showProperty = function() { 
      jQuery(".property-kit-inner").css({"opacity": "1"}); 
}; 

    jQuery(".military-kit-hover").click(hideServices, showMilitaryKit); 

    jQuery(".property-hover").click(hideServices, showProperty); 

Я убежден, что я не объединены мои переменные в .click случае на последней строке правильно, но я не могу найти какую-либо документацию о том, что я хочу достичь. У кого-нибудь есть настройка, которая будет работать для меня?

+3

Можете ли вы не просто соединить 2 функции в 1? – karthikr

+0

Нет. Я поправлю свой вопрос, чтобы вы могли понять, почему. – pappy

+0

Возможный дубликат [Несколько функций в одном событии с JQuery/Javascript] (http://stackoverflow.com/questions/4951388/multiple-functions-on-a-single-event-with-jquery-javascript) – epascarello

ответ

5

Wrap два вызова в анонимной функции:

jQuery('.military-kit-hover').click(function() { 
    hideServices(); 
    showMilitaryKit(); 
}); 

Если вам нужно сохранить объект события или this, сделать это:

jQuery('.military-kit-hover').click(function(e) { 
    hideServices.call(this, e); 
    showMilitaryKit.call(this, e); 
}); 
+0

lol слишком прямолинейно :) – Sedz

+0

Блестящий. Благодаря! – pappy

3
jQuery(".military-kit-hover").click(function() { 
    hideServices(); 
    showMilitaryKit(); 
}); 

Больше в JQuery.click()documentation.

Смежные вопросы