下拉对象旁边的菜单图像

时间:2013-06-10 09:59:50

标签: javascript jquery

我有一个下拉菜单,在链接旁边我有“+”和“ - ”通过javascript生成,现在是我的问题。如何在自定义图像上更改“+”和“ - ”? “+”表示我的菜单关闭,“ - ”表示扩展时。这是代码:

$(function() {
// hide all the sub-menus
$("span.toggle").next().hide();
$(".current").parents("li ul").show();


// add a link nudging animation effect to each link
$("#jQ-menu a, #jQ-menu span.toggle").hover(function() {
    $(this).stop().animate( {
        //paddingLeft:"10px",
        color:getElementById("#jQ-menu a, #jQ-menu span.toggle").color
    }, 300);
}, function() {
    $(this).stop().animate( {
        paddingLeft:"0",
        color:getElementById("#jQ-menu a, #jQ-menu span.toggle").color,
    }, 300);
});
$("#jQ-menu li.current a").hover(function() {
    $(this).stop().animate( {
        //paddingLeft:"10px",
        color:getElementById("#jQ-menu li.current a").color
    }, 300);
}, function() {
    $(this).stop().animate( {
        paddingLeft:"0",
        color:getElementById("#jQ-menu li.current a").color,
    }, 300);
});

// set the cursor of the toggling span elements
$("span.toggle").css("cursor", "pointer");

// prepend a plus sign to signify that the sub-menus aren't expanded
$('span.toggle').each(function(){
  if($(this).next().find(".current").html() != null){
    $(this).prepend("- ");
  }else{
     $(this).prepend("+ ");
  };
            });
// add a click function that toggles the sub-menu when the corresponding
// span element is clicked
$("span.toggle").click(function() {

    $(this).next().toggle(1000);
        // switch the plus to a minus sign or vice-versa
        var v = $(this).html().substring( 0, 1 );
        if ( v == "+" ){
            $(this).html( "-" + $(this).html().substring( 1 ) );
            var li = $(this).parent().siblings('li');
            $('span.toggle', li).each(function(){
                var v = $(this).html().substring( 0, 1 );
                if ( v == "-" ){
                $(this).html( "+" + $(this).html().substring( 1 ) );
                $(this).next().toggle(1000);
                }
            });
        } else if ( v == "-" )
            $(this).html( "+" + $(this).html().substring( 1 ) );
});
});

1 个答案:

答案 0 :(得分:0)

预装图像html标记?

if($(this).next().find(".current").html() != null){
    $(this).prepend(
        $('<img />').attr({
            'src': 'plus.gif',
            'alt': '', 
            'height': '25'
        })
    );
} else {
     $(this).prepend(
        $('<img />').attr({
            'src': 'minus.gif',
            'alt': '', 
            'height': '25'
        })
    )
};

编辑:我刚才注意到你检查了+-的html子串1。你可以在上面的图像中添加一个id属性,并检查元素的长度。