Пока у вас есть рабочий ответ, я хотел оставить предложение о переключении -
и +
, я бы предложил использовать text()
вместо HTML и использовать присущий text
(дляtext()
, html
для html()
):
$(".toggle_button").live('click', function() {
$(this).text(function(index,text) {
return text == '-' ? '+' : '-';
});
$(this).parent().next(".info_section").toggle(400);
});
И, кроме того, я бы предложил кэшировать ваш $(this)
, если вы вызываете его несколько раз, стоит использовать кэширование дляоткажитесь от необходимости заново создавать его, что приведет к:
$(".toggle_button").live('click', function() {
var $this = $(this);
$this.text(function(index,text) {
return text == '-' ? '+' : '-';
});
$this.parent().next(".info_section").toggle(400);
});
Конечно, если вы используете версию jQuery больше или включающую 1,7, то вы должны использовать метод on()
,вместо (начиная с jQuery 1.7) устарел live()
, что дало бы:
$(".toggle_button").on('click', function() {
var $this = $(this);
$this.text(function(index,text) {
return text == '-' ? '+' : '-';
});
$this.parent().next(".info_section").toggle(400);
});
Это на самом деле просто совет, хотя, к сожалению, опубликован как ответ, чтобы предотвратить вставку непонятного кода в комментарий.1020 *
Справочные материалы: