Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为WordPress类别小部件和归档小部件创建自定义样式的选择框_Javascript_Jquery Ui_Select_Wordpress Theming - Fatal编程技术网

Javascript 如何为WordPress类别小部件和归档小部件创建自定义样式的选择框

Javascript 如何为WordPress类别小部件和归档小部件创建自定义样式的选择框,javascript,jquery-ui,select,wordpress-theming,Javascript,Jquery Ui,Select,Wordpress Theming,我已经使用创建了WordPress归档和分类小部件的自定义选择框。它在所有浏览器上都非常有效,除了链接不能按预期工作,即当选择一个选项时,它应该使用选项中的链接将您带到分类页面 以下是默认情况下的WordPress选择代码: <div id="categories-2" class="widget_categories widget"> <div class="widgettitle"> <h3>Categories</h3>

我已经使用创建了WordPress归档和分类小部件的自定义选择框。它在所有浏览器上都非常有效,除了链接不能按预期工作,即当选择一个选项时,它应该使用选项中的链接将您带到分类页面

以下是默认情况下的WordPress选择代码:

<div id="categories-2" class="widget_categories widget">
    <div class="widgettitle">
        <h3>Categories</h3>
    </div>
    <select name="cat" id="cat" class="postform">
        <option value="-1">Select Category</option>
        <option class="level-0" value="10">Education&nbsp;&nbsp;(2)</option>
        <option class="level-0" value="8">Entertainment&nbsp;&nbsp;(2)</option>
        <option class="level-0" value="11">Finance&nbsp;&nbsp;(2)</option>
    </select>
</div>
我不是JavaScript专家,我需要有人帮助我更改代码,以便在选择框中选择的链接将您带到引用的类别或归档页面

<div id="categories-2" class="widget_categories widget">
    <div class="widgettitle">
        <h3>Categories</h3>
    </div>
    <div class="select">
        <select name="cat" id="cat" class="postform select-hidden">
            <option value="-1">Select Category</option>
            <option class="level-0" value="10">Education&nbsp;&nbsp;(2)</option>
            <option class="level-0" value="8">Entertainment&nbsp;&nbsp;(2)</option>
            <option class="level-0" value="11">Finance&nbsp;&nbsp;(2)</option>
        </select>
        <div class="select-styled">"Select Category"</div>
            <ul class="select-options" style="display: none;">
                <li rel="-1">Select Category</li>
                <li rel="10">Education&nbsp;&nbsp;(2)</li>
                <li rel="8">Entertainment&nbsp;&nbsp;(2)</li>
                <li rel="11">Finance&nbsp;&nbsp;(2)</li>
            </ul>
        </div>
    </div>
</div>
$('select').each(function(){
    var $this = $(this), numberOfOptions = $(this).children('option').length;

    $this.addClass('select-hidden'); 
    $this.wrap('<div class="select"></div>');
    $this.after('<div class="select-styled"></div>');

    var $styledSelect = $this.next('div.select-styled');
    $styledSelect.text($this.children('option').eq(0).text());

    var $list = $('<ul />', {
        'class': 'select-options'
    }).insertAfter($styledSelect);

    for (var i = 0; i < numberOfOptions; i++) {
        $('<li />', {
            text: $this.children('option').eq(i).text(),
            rel: $this.children('option').eq(i).val()
        }).appendTo($list);
    }

    var $listItems = $list.children('li');

    $styledSelect.click(function(e) {
        e.stopPropagation();
        $('div.select-styled.active').each(function(){
            $(this).removeClass('active').next('ul.select-options').hide();
        });
        $(this).toggleClass('active').next('ul.select-options').toggle();
    });

    $listItems.click(function(e) {
        e.stopPropagation();
        $styledSelect.text($(this).text()).removeClass('active');
        $this.val($(this).attr('rel'));
        $list.hide();
        //console.log($this.val());
    });

    $(document).click(function() {
        $styledSelect.removeClass('active');
        $list.hide();
    });

});