javascript - jQuery 工具提示设置循环中的动态内容返回最后一个值

标签 javascript jquery jquery-ui-tooltip

对于所有工具提示元素,变量 intcontent 始终具有相同的值。如何将正确的值传递给工具提示内容函数?

for(var x=0; x<arr_dj[i].style.length; x++){
  if(x != 0)$divstyle.append($('<span> / </span>'));
    var $span = $('<span></span>');
    $span.append(getconststr(arr_dj[i].style[x]));
    var intcontent = arr_dj[i].style[x];
    $span.tooltip({
      items: "div",
      tooltipClass: "style_tooltips",
      position: {
        my: "left-25 top", 
        at: "right bottom "
      },
      content: function(e) {
        var html = getmusicdef(intcontent);
        return html;
      }
    });
    $divstyle.append($span);
  }
}

最佳答案

变量intcontent可用作content函数中的闭包,但在执行该函数时,它被设置为最后一个值。使用 IIFE 将其设置为每次迭代的正确值:

for(var x=0; x<arr_dj[i].style.length; x++){
  if(x != 0){//not sure what you wanted to do here, posted code has too many }
    $divstyle.append($('<span> / </span>'));
    var $span = $('<span></span>');
    $span.append(getconststr(arr_dj[i].style[x]));
    var intcontent = arr_dj[i].style[x];
    $span.tooltip({
      items: "div",
      tooltipClass: "style_tooltips",
      position: {
        my: "left-25 top", 
        at: "right bottom "
      },
      content: (function(intcontent){
        return function(e) {
          var html = getmusicdef(intcontent);
          return html;
        }
      }(intcontent))//IIFE setting intcontent correctly
    });
    $divstyle.append($span);
  }
}

关于javascript - jQuery 工具提示设置循环中的动态内容返回最后一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47501192/

相关文章:

禁用按钮上的 Jquery UI 工具提示

javascript - 为列表中的单个项目打开一个弹出窗口

javascript - Javascript mousemove 事件处理程序会阻止 mousemove 事件吗?

javascript - fadesdk打开用户选择的文件

javascript - 单击 d3.select(this) 返回路径样式颜色

jQuery UI 保持工具提示打开以进行调试(以设置其样式)

javascript - 如何使用javascript将新的<li>添加到<ul> onclick

javascript - 动画背景替换

PHP/JSON : $_POST array is received incomplete

jquery - 如果我们禁用单击按钮,工具提示不会隐藏