gpt4 book ai didi

javascript - 将自定义图标添加到选择菜单

转载 作者:行者123 更新时间:2023-11-28 01:46:29 28 4
gpt4 key购买 nike

我正在使用 JQuery 和 JQuery UI。

我按照自定义呈现的 JQuery UI 演示中的示例将图标添加到运行良好的选择菜单项。我遇到的问题是将选定的图标添加到用户单击以显示菜单的按钮。我按照已接受的答案找到 here ,我有一个图标显示,但它没有显示我想要的自定义图标,它显示了一个标准图标。我已经为 CSS 尝试了许多不同的变体,并为图标的范围添加了类,但我无法做到正确。当我检查 Chrome 中的元素时,它始终将图像显示为派生自“ui-button ui-icon”类,而不是我的自定义图标类。我需要什么样的 CSS 和类组合才能使其正确显示?

我有一个选择菜单定义如下:

<select name="sourceIcon" id="jsSourceIconSelect">
<option value="AM-FM-2" data-class="am-fm">AM-FM</option>
<option value="CD-2" data-class="cd">CD</option>
<option value="Climate-2" data-class="climate">Climate</option>
<option value="Display-Alt-2" data-class="display-alt">Display Alt</option>
<option value="Display-2" data-class="display">Display</option>
<option value="DVR-2" data-class="dvr">DVR</option>
<option value="Energy Management-2" data-class="energy-management">Energy Management</option>
<option value="Favorites-2" data-class="favorites">Favorites</option>
<option value="Film Reel-2" data-class="film-reel">Film Reel</option>
<option value="Home-2" data-class="home">Home</option>
</select>

和关联的 javascript:

$.widget("custom.iconselectmenu", $.ui.selectmenu, {
_renderItem: function(ul, item) {
var li = $("<li>"),
wrapper = $("<div>",{text: item.label});

if(item.disabled){
li.addClass("ui-state-disabled");
}

$("<span>", {
style: item.element.attr("data-style"),
"class":"ui-icon " + item.element.attr("data-class")
}).appendTo(wrapper);

return li.append(wrapper).appendTo(ul);
}
});

$("#jsSourceIconSelect").iconselectmenu({
select: function(event, ui){
$("#" + this.id + "ImgSelected").attr("class","ui-icon" + ui.item.element.data("class"));
},
create: function(event, ui){
var widget=$(this).iconselectmenu("widget");
$span = $('<span id="' + this.id + 'ImgSelected" class="ui-icon ' + $(this).children(":first").data("class") +'">').appendTo(widget);
}
})
.iconselectmenu("menuWidget")
.addClass("ui-menu-icons customicons");

和关联的CSS:

.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item-wrapper{
padding: .5em 0 .5em 3em;
}

.ui-selectmenu-menu .ui-menu.customicons .ui-menu-item .ui-icon{
background-image: url("ui-icons-largeicons.png");
height: 32px;
width: 32px;
top: .1em;
}

编辑:认为我应该为一些图标添加 css:

.ui-icon.am-fm{ background-position: 0 0; }
.ui-icon.cd{ background-position: -32px 0; }
.ui-icon.climate{ background-position: -64px 0; }
.ui-icon.display-alt{ background-position: -96px 0;}
.ui-icon.display{ background-position: -128px 0;}
.ui-icon.dvr{background-position: -160px 0;}
.ui-icon.energy-management{ background-position: -192px 0;}
.ui-icon.favorites{background-position: -224px 0;}
.ui-icon.film-reel{background-position: -256px 0;}
.ui-icon.home{background-position: -288px 0;}

最佳答案

我在选择菜单中处理自定义图标的方式是将 position-x、position-y 更改为正常设置,因为这就是图像未显示的原因。我刚刚制作了以下 css:

.ui-icon {
background-image: url("/Images/dropdown-icon_2018-10-03/dropdown-icon.png");
background-position-x: 0;
background-position-y: 5px;
}

关于javascript - 将自定义图标添加到选择菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50162779/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com