社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Jquery

如何在jquery中“连接”和循环2个关联数组?

Halnex • 5 年前 • 354 次点击  

我有15个部分(称为基础),每个部分都有自己的字母按钮集。

我要做的就是把字母数字和它们所在的基部/部分联系起来。例如,如果一个用户单击了基7下的字母“b”,我想返回该用户单击了该字母。 B 位于底座下方 7

我将需要的所有数据放入2个数组中,并动态生成字母表。一切都按预期工作,但我不能把信和基地联系起来。

您可以查看下面的演示并打开控制台日志,然后尝试单击任何按钮。

这是到目前为止我的代码。

正如你将看到的,我正试图回来 base[i].id 从一开始 forEach 在第二个字母循环中循环。

console.log(alphabet[i].id + ' has been clicked on ' + base[i].id);

这将返回以下内容

A has been clicked on base1
B has been clicked on base2
C has been clicked on base3

但他们都应该在base7上说,因为按钮所在的位置。

更重要的是,下面的代码应该绑定2个数组,因为它要求 base 应用纹理的名称/编号

setMaterialUIDPending (base[i].name, AlbedoPBR, alphabet[i].id+"-letter");

我希望我讲得通。

let base = [
  { 'id': 'base1', 'btn': 'b1-include', "name": "baseone" },
  { 'id': 'base2', 'btn': 'b2-include', "name": "basetwo" },
  { 'id': 'base3', 'btn': 'b3-include', "name": "basethree" },
  { 'id': 'base4', 'btn': 'b4-include', "name": "basefour" },
  { 'id': 'base5', 'btn': 'b5-include', "name": "basefive" },
  { 'id': 'base6', 'btn': 'b6-include', "name": "basesix" },
  { 'id': 'base7', 'btn': 'b7-include', "name": "baseseven" },
  { 'id': 'base8', 'btn': 'b8-include', "name": "baseeight" },
  { 'id': 'base9', 'btn': 'b9-include', "name": "basenine" },
  { 'id': 'base10', 'btn': 'b10-include', "name": "baseten" },
  { 'id': 'base11', 'btn': 'b11-include', "name": "baseeleven" },
  { 'id': 'base12', 'btn': 'b12-include', "name": "basetwelve" },
  { 'id': 'base13', 'btn': 'b13-include', "name": "basethirteen" },
  { 'id': 'base14', 'btn': 'b14-include', "name": "basefourteen" },
  { 'id': 'base15', 'btn': 'b15-include', "name": "basefifteen" },
];

let alphabet = [
  { "id":"A", "url":"https://example.com/A.png" },
  { "id":"B", "url":"https://example.com/B.png" },
  { "id":"C", "url":"https://example.com/C.png" }
];

let preview = $('.preview');


$.each(base, function(i, v) {
  let $collapse = $('<div>', {'class': 'collapse', id: base[i].id});
  let $btn = $('<a>', {'href': '#', 'class': 'btn btn-sm btn-primary', id: base[i].btn});
  let $letters = $('<div>', {'class': 'letters'});

  $btn.text(base[i].btn);
  preview.append($collapse);
  $btn.on('click', function() {
    if($(this).attr('data-click-state') == 1) {
      $(this).attr('data-click-state', 0);
      setOpacity(base[i].name, 0.2);
    } else {
      $(this).attr('data-click-state', 1);
      setOpacity(base[i].name, 1);
    }
  });
  $collapse.append($btn);
  $collapse.append($letters);

  $.each(alphabet, function (i, v) {
    let $href = $("<a>", {id: alphabet[i].id, "class": "btn btn-sm btn-dark", 'href': '#', 'title': alphabet[i].id, 'data-src': alphabet[i].url, 'data-base': base[i].id});
    $href.text(alphabet[i].id);
    $href.on('click', function(){
      console.log(alphabet[i].id + ' has been clicked on ' + base[i].id);
      setMaterialUIDPending (base[i].name, AlbedoPBR, alphabet[i].id+"-letter");
      addTexture(alphabet[i].url, 'N-letter', true);
    });
    $letters.append($href);
  });

});
.preview ul {
  list-style-type: none;
  display: flex;
  flex-wrap: wrap;
}

.preview ul li {
  flex: 1 0 25%;
  margin: 5px;
}
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" />
<div class="preview">
  <ul>
    <li id="b1"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base1" role="button" aria-expanded="false" aria-controls="base1">Base 1</a></li>
    <li id="b2"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base2" role="button" aria-expanded="false" aria-controls="base2">Base 2</a></li>
    <li id="b3"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base3" role="button" aria-expanded="false" aria-controls="base3">Base 3</a></li>
    <li id="b4"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base4" role="button" aria-expanded="false" aria-controls="base4">Base 4</a></li>
    <li id="b5"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base5" role="button" aria-expanded="false" aria-controls="base5">Base 5</a></li>
    <li id="b6"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base6" role="button" aria-expanded="false" aria-controls="base5">Base 6</a></li>
    <li id="b7"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base7" role="button" aria-expanded="false" aria-controls="base5">Base 7</a></li>
    <li id="b8"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base8" role="button" aria-expanded="false" aria-controls="base8">Base 8</a></li>
    <li id="b9"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base9" role="button" aria-expanded="false" aria-controls="base9">Base 9</a></li>
    <li id="b10"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base10" role="button" aria-expanded="false" aria-controls="base10">Base 10</a></li>
    <li id="b11"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base11" role="button" aria-expanded="false" aria-controls="base11">Base 11</a></li>
    <li id="b12"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base12" role="button" aria-expanded="false" aria-controls="base12">Base 12</a></li>
    <li id="b13"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base13" role="button" aria-expanded="false" aria-controls="base13">Base 13</a></li>
    <li id="b14"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base14" role="button" aria-expanded="false" aria-controls="base14">Base 14</a></li>
    <li id="b15"><a class="btn btn-sm btn-dark" data-toggle="collapse" href="#base15" role="button" aria-expanded="false" aria-controls="base15">Base 15</a></li>
  </ul>
</div>
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34270
 
354 次点击  
文章 [ 1 ]  |  最新文章 5 年前