0

我正在制作手风琴菜单。
我刚刚找到这个链接http://jsfiddle.net/zM5Vj/,它几乎与我制作的手风琴菜单相似。
在代码中,哪里有

if($(this).text() == "-")  
{
  $(this).text("+");
  }
  else {
  $('#accordion .opener').text("+");
  $(this).text("-");
   }
 });

如果插入“+”和“-”,我想放置图标“~/Image/iconplus.gif”和“~/Image/iconminus.gif”。我该怎么做?
我努力了

<img src="..."/>

但它仍然没有用。
请问有人可以帮忙吗?
提前致谢。

4

2 回答 2

3

$(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');
        }
    });
});
于 2013-06-02T18:55:20.290 回答
1

谢谢大家的回复并帮助我解决它。
@Simon Adcock,您的回答给了我一种思考解决方案的新方法。
但是,我也找到了 1 行解决方案。
我刚刚将此行添加到我的.js文件中

 $(this).append($('<img src="../Images/imageplus.gif"/>'))

所以,最后回答是:

if (x == "block") {
        $(this).text('');
        $(this).append($('<img src="../Images/imageplus.gif"/>'))
        $(this).append(' ' + valueText);
    }
    else {
        $(this).text('');
        $(this).append($('<img src="../Images/imageminus.gif"/>'))
        $(this).append(' ' + valueText);
    }
于 2013-06-07T09:23:25.733 回答