$(this).text()
позволяет указать текстовое содержимое для элемента. Чтобы прикрепить изображение, используйте $(this).append($(<img src='plus.gif'))
.
Кроме того, вместо использования $(this).text() == '-'
для проверки того, расширилось ли меню, прикрепите класс к элементу <a>
.
Например, мы можем использовать .addClass('expand')
, чтобы указать, что меню расширилось, затем .hasClass('expand')
, чтобы проверить, расширилось ли меню, и, наконец, '.removeClass('expand')
, чтобы указать, что меню больше не расширяется).
Вот пример с использованием фиктивных изображений для иллюстрации:
JSFiddle
$(function(){
//starter plus image
var startPlus = $('<img>').attr('src','http://findicons.com/files/icons/1688/web_blog/48/add.png')
.css({'height': '20px', 'width': '20px'});
$('#accordion .fullChild>a.opener').addClass('box')
.append(startPlus);
$('#accordion .opener').click(function() {
//images for click event handler
var plusImg = $('<img>').attr('src','http://findicons.com/files/icons/1688/web_blog/48/add.png')
.css({'height': '20px', 'width': '20px'});
var minusImg = $('<img>').attr('src','http://findicons.com/files/icons/2083/go_green_web/64/subtract.png')
.css({'height': '10px', 'width': '10px'});
if($(this).hasClass('expand')) {
$(this).empty()
.append(plusImg)
.removeClass('expand');
} else {
$(this).empty()
.append(minusImg)
.addClass('expand');
}
});
});
person
Simon Adcock
schedule
02.06.2013