首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ajax调用后的动态按钮数

ajax调用后的动态按钮数
EN

Stack Overflow用户
提问于 2021-05-13 17:11:33
回答 1查看 22关注 0票数 0

我必须在Ajax成功函数中动态创建按钮。没有固定数量的按钮,每次按钮的数量都不同。

我可以这样做,但我不知道要创建的元素的确切数量,我不知道如何添加正确数量的按钮侦听器。

AJAX:

代码语言:javascript
运行
复制
success : function(data, status, xhr) {
  $("#risultatoLibriCercati").empty();

  var divContent = "";
  for (var i = 0; i < data.length; i++) {
    divContent +=
      "<div class='col-sm-2 mt-4'><a data-toggle='modal' data-target='#bookPage" +
      [i] +
      "'><div class='card shadow-sm'><img style='height:250px' src='" +
      data[i].imgLink +
      "' class='img-thumbnail rounded'></div></a></div><div class='modal fade' id='bookPage" +
      [i] +
      "'><div class='modal-dialog'><div class='modal-content'><div class='modal-header text-center'><h4 class='modal-title w-100 dark-grey-text font-weight-bold'>" +
      data[i].titolo +
      "</h4><button type='button' class='close' data-dismiss='modal' aria-lable='close'>&times;</button></div><div class='mt-4' style='background: url(" +
      data[i].imgLink +
      ") no-repeat;background-size: contain; background-position: center; min-height: 300px;'></div><div class='modal-body mx-4'><div class='md-form'><p class='font-small'>" +
      data[i].autore +
      "</p></div><div class='md-form'><p>" +
      data[i].descrizione +
      "</p></div><div class='text-center mb-3'><button class='btn btn-primary btn-block z-depth-1a' id='aggiungi" +
      [i] +
      "'>Aggiungi a libreria</button><a href='" +
      data[i].isbn13.replace("'", " ") +
      "' target='_blank' style='border:none;text-decoration:none'><img src='https://www.niftybuttons.com/amazon/amazon-button2.png'></a></div></div></div></div></div><input type='hidden' id='categoria" +
      [i] +
      "' value='" +
      data[i].categoria +
      "'><input type='hidden' id='googleID" +
      [i] +
      "' value='" +
      data[i].googleID +
      "'><input type='hidden' id='titolo" +
      [i] +
      "' value='" +
      data[i].titolo.replace("'", " ") +
      "'><input type='hidden' id='descrizione" +
      [i] +
      "' value='" +
      data[i].descrizione.replace("'", " ") +
      "'><input type='hidden' id='autore" +
      [i] +
      "' value='" +
      data[i].autore +
      "'><input type='hidden' id='isbn" +
      [i] +
      "' value='" +
      data[i].isbn13.replace("'", " ") +
      "'><input type='hidden' id='voto" +
      [i] +
      "' value='" +
      data[i].voto +
      "'><input type='hidden' id='imgLink" +
      [i] +
      "' value='" +
      data[i].imgLink +
      "'>";
  }
  $("#risultatoLibriCercati").append(divContent);
}

单击侦听器上的按钮:

代码语言:javascript
运行
复制
$(document).on('click', '#aggiungi0', function(){                            
  var book = {
    googleID: $("#googleID0").val(),
    titolo: $("#titolo0").val(),
    descrizione: $("#descrizione0").val(),
    isbn13: $("#isbn0").val(),
    voto: $("#voto0").val(),
    imgLink: $("#imgLink0").val(),
    autore: $("#autore0").val(),
    categoria: $("#categoria0").val(),
    userId: getCookie("userId"),
  };    
  $.ajax({
[...]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-13 17:23:41

您可以为这些按钮添加class属性,并为它们附加事件和索引,如下所示

代码语言:javascript
运行
复制
var btnIndex = 0;
$('#add').on('click', function() {
  $('.container').append(`<button class="new-btn" data-index=${btnIndex++}>Button test</button>`);
});

$('.container').on('click', '.new-btn', function(e) {
  console.log("clicked" + $(e.target).data("index"));
})
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="add">Add</button>
<div class="container"></div>

并将这些值按索引传递到ajax调用中,如下所示:

代码语言:javascript
运行
复制
$(document).on('click', '.new-btn', function(e){   
  const idx = $(e.target).data("index");                       
  var book = {
    googleID: $("#googleID" + idx).val(),
    titolo: $("#titolo" + idx).val(),
    descrizione: $("#descrizione" + idx).val(),
    isbn13: $("#isbn" + idx).val(),
    voto: $("#voto" + idx).val(),
    imgLink: $("#imgLink0" + idx).val(),
    autore: $("#autore" + idx).val(),
    categoria: $("#categoria" + idx).val(),
    userId: getCookie("userId"),
  };    
  $.ajax({
[...]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67516706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档