RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1367186
Accepted
Arcadiy
Arcadiy
Asked:2022-05-30 04:55:54 +0000 UTC2022-05-30 04:55:54 +0000 UTC 2022-05-30 04:55:54 +0000 UTC

如何使选项选择器转到 url?

  • 772

有一个代码

var langArray = [];
$('.vodiapicker option').each(function() {
  var img = $(this).attr("data-thumbnail");
  var text = this.innerText;
  var value = $(this).val();
  var item = '<li><img src="' + img + '" alt="" value="' + value + '"/><span>' + text + '</span></li>';
  langArray.push(item);
})

$('#a').html(langArray);

//Set the button value to the first el of the array
$('.btn-select').html(langArray[0]);
$('.btn-select').attr('value', 'ru');

//change button stuff on click
$('#a li').click(function() {
  var img = $(this).find('img').attr("src");
  var value = $(this).find('img').attr('value');
  var text = this.innerText;
  var item = '<li><img src="' + img + '" alt="" /><span>' + text + '</span></li>';
  $('.btn-select').html(item);
  $('.btn-select').attr('value', value);
  $(".b").toggle();
  //console.log(value);
});

$(".btn-select").click(function() {
  $(".b").toggle();
});

//check local storage for the lang
var sessionLang = localStorage.getItem('lang');
if (sessionLang) {
  //find an item with value of sessionLang
  var langIndex = langArray.indexOf(sessionLang);
  $('.btn-select').html(langArray[langIndex]);
  $('.btn-select').attr('value', sessionLang);
} else {
  var langIndex = langArray.indexOf('ch');
  console.log(langIndex);
  $('.btn-select').html(langArray[langIndex]);
  //$('.btn-select').attr('value', 'ru');
}
.vodiapicker {
  display: none;
}

#a {
  padding-left: 0px;
}

#a img,
.btn-select img {
  width: 23px;
  height: 17px;
}

#a li {
  list-style: none;
  padding-top: 5px;
  padding-bottom: 5px;
  color: orange;
}

#a li:hover {
  background-color: #F4F3F3;
  color: black;
}

#a li img {
  margin: 5px;
}

#a li span,
.btn-select li span {
  margin-left: 10px;
}


/* item list */

.b {
  display: none;
  width: 150px;
  box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
  border: 1px solid rgba(0, 0, 0, .15);
  border-radius: 5px;
}

.open {
  display: show !important;
}

.btn-select {
  margin-top: 10px;
  width: auto;
  max-width: 150px;
  height: 34px;
  border-radius: 5px;
  background-color: #0055c7!important;
  border: 0px;
}

.btn-select li {
  list-style: none;
  float: left;
  padding-bottom: 0px;
  color: white;
}

.btn-select:hover li {
  margin-left: 0px;
}

.btn-select:hover {
  background-color: #F4F3F3;
  border: 1px solid transparent;
  box-shadow: inset 0 0px 0px 1px #ccc;
}

.btn-select:focus {
  outline: none;
  color: orange;
}

.lang-select {
  margin-left: 50px;
}

body {
  background-color: #0055c7!important
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<select class="vodiapicker">
  <option value="ru" class="test" data-thumbnail="/ru.jpg">Russia</option>
  <option value="en" data-thumbnail="/gb.jpg">England</option>
</select>

<div class="lang-select">
  <button class="btn-select" value=""></button>
  <div class="b">
    <ul id="a"></ul>
  </div>
</div>

如何使它在选择俄语时切换到href="/ru/",而英语切换到href="/en/"。
我试图发布链接,但没有成功。

javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    sousage1212
    2022-05-30T07:41:46Z2022-05-30T07:41:46Z

    如果需要,本地存储取消注释

    var langArray = [];
    $('.vodiapicker option').each(function() {
      var img = $(this).attr("data-thumbnail");
      var text = this.innerText;
      var value = $(this).val();
      var href = $(this).data('href');
      var item = '<li data-href="'+href+'"><img src="' + img + '" alt="" value="' + value + '"/><span>' + text + '</span></li>';
      langArray.push(item);
    })
    
    $('#a').html(langArray);
    
    //Set the button value to the first el of the array
    $('.btn-select').html(langArray[0]);
    $('.btn-select').attr('value', 'ru');
    $('.btn-select li').removeAttr('data-href');
    
    //change button stuff on click
    $('#a li').click(function() {
      var img = $(this).find('img').attr("src");
      var value = $(this).find('img').attr('value');
      var text = this.innerText;
    
      var item = '<li><img src="' + img + '" alt="" /><span>' + text + '</span></li>';
      $('.btn-select').html(item);
      $('.btn-select').attr('value', value);
      $(".b").toggle();
      //console.log(value);
    });
    
    $(".btn-select").click(function() {
      $(".b").toggle();
    });
    
    //check local storage for the lang
    /*
    var sessionLang = localStorage.getItem('lang');
    if (sessionLang) {
      //find an item with value of sessionLang
      var langIndex = langArray.indexOf(sessionLang);
      $('.btn-select').html(langArray[langIndex]);
      $('.btn-select').attr('value', sessionLang);
    } else {
      var langIndex = langArray.indexOf('ch');
      console.log(langIndex);
      $('.btn-select').html(langArray[langIndex]);
      //$('.btn-select').attr('value', 'ru');
    }
    */
    
    // переход по ссылке
     $('li[data-href]').click(function(){
      window.location.href=$(this).data('href');
    })
    .vodiapicker {
      display: none;
    }
    
    #a {
      padding-left: 0px;
    }
    
    #a img,
    .btn-select img {
      width: 23px;
      height: 17px;
    }
    
    #a li {
      list-style: none;
      padding-top: 5px;
      padding-bottom: 5px;
      color: orange;
    }
    
    #a li:hover {
      background-color: #F4F3F3;
      color: black;
    }
    
    #a li img {
      margin: 5px;
    }
    
    #a li span,
    .btn-select li span {
      margin-left: 10px;
    }
    
    
    /* item list */
    
    .b {
      display: none;
      width: 150px;
      box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
      border: 1px solid rgba(0, 0, 0, .15);
      border-radius: 5px;
    }
    
    .open {
      display: show !important;
    }
    
    .btn-select {
      margin-top: 10px;
      width: auto;
      max-width: 150px;
      height: 34px;
      border-radius: 5px;
      background-color: #0055c7!important;
      border: 0px;
    }
    
    .btn-select li {
      list-style: none;
      float: left;
      padding-bottom: 0px;
      color: white;
    }
    
    .btn-select:hover li {
      margin-left: 0px;
    }
    
    .btn-select:hover {
      background-color: #F4F3F3;
      border: 1px solid transparent;
      box-shadow: inset 0 0px 0px 1px #ccc;
    }
    
    .btn-select:focus {
      outline: none;
      color: orange;
    }
    
    .lang-select {
      margin-left: 50px;
    }
    
    body {
      background-color: #0055c7!important
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    
    <select class="vodiapicker">
      <option value="ru" data-href="/ru/" class="test" data-thumbnail="/ru.jpg">Russia</option>
      <option value="en" data-href="/en/" data-thumbnail="/gb.jpg">England</option>
    </select>
    
    <div class="lang-select">
      <button class="btn-select" value=""></button>
      <div class="b">
        <ul id="a"></ul>
      </div>
    </div>

    • 1

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    表格填充不起作用

    • 2 个回答
  • Marko Smith

    提示 50/50,有两个,其中一个是正确的

    • 1 个回答
  • Marko Smith

    在 PyQt5 中停止进程

    • 1 个回答
  • Marko Smith

    我的脚本不工作

    • 1 个回答
  • Marko Smith

    在文本文件中写入和读取列表

    • 2 个回答
  • Marko Smith

    如何像屏幕截图中那样并排排列这些块?

    • 1 个回答
  • Marko Smith

    确定文本文件中每一行的字符数

    • 2 个回答
  • Marko Smith

    将接口对象传递给 JAVA 构造函数

    • 1 个回答
  • Marko Smith

    正确更新数据库中的数据

    • 1 个回答
  • Marko Smith

    Python解析不是css

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5