自定义HTML选择,带有选项链接

时间:2015-08-03 22:00:37

标签: javascript select

我一直在使用我jsfiddle修改的original来符合我的风格。问题是我需要将每个选项都设为一个链接,所以当你点击一个链接时,它会将url设置为值。我在另一个论坛中发现了以下功能,它使用普通的HTML选择,但是当我使用jsfiddle版本时它不再起作用了:

document.getElementById("test_select").onchange = function() {
        if (this.selectedIndex!==0) {
            window.location.href = this.value;
        }        
    };

我对Javascript或jQuery一无所知,我只使用HTML和CSS,所以如果有人可以指出我的jfiddle中有什么冲突,这样我就可以开始工作了,我真的很感激!

2 个答案:

答案 0 :(得分:2)

只需将其添加到现有功能中:

if ($tgt.is('li')) {
    $(this).find('span').html($tgt.html());
    var value=$tgt.attr('rel');
    $('#test_select').val( value);
    // Add this line:
    window.location.href = value;
}

编辑:JSFiddle今晚似乎没有工作,所以这里是Codepen:http://codepen.io/anon/pen/pJqYYO

答案 1 :(得分:0)

这应该可以解决问题,你可以编辑选项的值以及你想要重定向用户的位置,在我选择的示例代码中 - google,facebook,stackoverflow。

// CODE

$(document).ready(function (){
    $('.portfolio-slider').each(function(){
        var $this = $(this);
        $this.unslider({
          delay: false,
          dots: false,
          fluid: true,
          keys: true,
          loop: true
        }).find('.unslider-arrow').click(function(event){
            event.preventDefault();
            if ($(this).hasClass('next')) {
                $this.data('unslider').next();
            } else {
                $this.data('unslider').prev();
            }
        });
        $(document).unbind('keydown').keydown(function(e){
            var active = $('div.portfolio-slider.active');
            if(e.keyCode === 37 ) {
                e.preventDefault();
                active.data('unslider').prev();
                return false;
            }
            if(e.keyCode === 39 ) {
                e.preventDefault();
                active.data('unslider').next();
                return false;
            }
        });

    });
});