how set individual styles (css) for option in selectmenu (jquery-ui: selectmenu)

馋奶兔 提交于 2019-12-25 12:43:13

问题


I have a html form:select

<select id = 'myselect'>
<option value = '1'>1</option>
<option value = '2'>2</option>
...
<option value = 'N'>N</option>
</select>

for a beautiful drawing I use jquery-ui

$('#myselect').selectmenu();

I need to box 1 had its own style

how to do it? set the id, class does not work :(

I think that i should do the following:

1) create html code of 'classic' select form

2) join created 'classic' select form to jquery-ui

3) find element in jquery-ui selectmenu (HOW?)

4) set to found element new class-name

5) use css for class-name


回答1:


Twisty, big thanks for idea's direction

decision:

$.widget( "ui.selectmenu", $.ui.selectmenu, {
    _my_render: function( item ) {          
        return $("<div" + ((item.element[0].attributes.my_level == undefined) ? ("") : (" class = '_my_class'")) + ">" + item.label + "</div>");
    },

    _renderItem: function( ul, item ) {

        return $( "<li>" )
            .append(this._my_render(item))
            .appendTo(ul);
    },
});



回答2:


This is discussed in the API: http://api.jqueryui.com/selectmenu/ under Theming.

The selectmenu widget uses the jQuery UI CSS framework to style its look and feel. If selectmenu specific styling is needed, the following CSS class names can be used for overrides or as keys for the classes option:

  • ui-selectmenu-button: The button-like element replacing the native selectmenu on the page. Has the ui-selectmenu-button-closed class when closed, the ui-selectmenu-button-open class when open.

    • ui-selectmenu-text: The span representing the text portion of the button element.
    • ui-selectmenu-icon: The icon within the selectmenu button.
  • ui-selectmenu-menu: The wrapper element around the menu used to display options to the user (not the menu itself). When the menu is open, the ui-selectmenu-open class is added.
    • ui-selectmenu-optgroup: One of the elements that replicates <optgroup> elements from native selects.

This example shows some of this: https://jqueryui.com/selectmenu/#custom_render

Using a more basic example, we can select and style unique items via CSS. The original select element is hidden. An Unorganized List, <ul> is created to use instead. We can select the first list item using a proper jQuery or CSS selector: #ui-id-1 or .ui-menu-item:first-child div.

You have not provided an example of what you have tried or what you are trying to accomplish. Here is a very basic example: https://jsfiddle.net/Twisty/vgm3txh6/

HTML

<label for="number">Select a number</label>
<select name="number" id="number">
  <option>1</option>
  <option selected="selected">2</option>
  <option>3</option>
  ...
  <option>19</option>
</select>

CSS

.ui-menu-item:first-child {
  font-weight: bold;
}

JavaScript

$(function() {
  $("#number")
    .selectmenu()
    .selectmenu("menuWidget")
    .addClass("overflow");
});

If you edit your post and add more details, I can supply a bit more info. I hope this helps you get to your solution.



来源:https://stackoverflow.com/questions/41570175/how-set-individual-styles-css-for-option-in-selectmenu-jquery-ui-selectmenu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!