javascript - 选择元素后自定义 jQuery selectmenu 下拉按钮?

标签 javascript jquery css jquery-ui jquery-ui-selectmenu

我希望为颜色创建一个下拉菜单,其中每种颜色都作为元素旁边的一个小方 block 。

有:

enter image description here

想要(大致):

enter image description here

This version (jsfiddle)下拉元素本身工作正常,但我希望按钮也更新为旁边有彩色方 block 。

$.widget("custom.coloriconselectmenu", $.ui.selectmenu, {  
  _renderItem: function (ul, item) {  
    var li = $("<li>", {text: item.label});  
    var bgColorStyle = 'background-color:' + item.element.attr("data-color");  
    var fullStyle = "float: left; width: 21px; height: 19px; margin-right: 7px;" + bgColorStyle;  
    $("<div>", {style: fullStyle}).appendTo(li);  
    return li.appendTo(ul);  
  }
});  

$("#selectId").coloriconselectmenu({icons: {button: "custom-button"}});

是否有一种好方法可以修改值更新时的下拉按钮,使其像下拉菜单一样包含颜色方 block ?

最佳答案

按如下方式修改您的代码,使其响应change 事件:

$( "#selectId" ).coloriconselectmenu({ 
    icons: { button: "custom-button" }, 
    change: function(event, ui){ 
        var selectedColor = $(this).find("option:selected").attr("data-color");
        //alert(selectedColor);
        var hiddenSelectMenuBtn = "#" + $(this).attr("id")+"-button .ui-selectmenu-text"
        //alert($(hiddenSelectMenuBtn).text());

        var fullStyle = "float: left; width: 21px; height: 19px; margin-right: 7px; background-color:" + selectedColor;  
        $("<span>", {style: fullStyle}).prependTo($(hiddenSelectMenuBtn));  
}); 

您需要选择“选择菜单文本”,它不容易通过函数或属性公开。

您可以在 updated jsfiddle 中看到实际效果.

关于javascript - 选择元素后自定义 jQuery selectmenu 下拉按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29528317/

相关文章:

javascript - 防止在 gRaphael 饼图中排序

javascript - 如何在函数外获取数组?

JavaScript - 从文本框中读取的值是否被转义?

jquery - 淡入图像直至单击另一张图像

css - *已编辑*当图像具有最大宽度时对齐图像及其标题

javascript - 使用 Decimal 库而不是 IEEE 754 数学的编译为 JavaScript 选项?

javascript - 如果父窗口刷新,则检索对子窗口的引用

javascript - 如何发送 JSON 但期望使用 AJAX/JQuery 响应纯文本?

html - 使文本和复选框并排

html - 是否可以使用 css 创建此椭圆形阴影?