javascript - 带 JQuery 的工具提示事件和带 id 的数组

标签 javascript jquery html arrays jquery-tooltip

我在网上找到了这个片段并对其进行了修改,所以我希望它对我有用:

<html>
<head>

 <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>

<style type="text/css">
#hint{
    cursor:pointer;
}
.tooltip{
    margin:8px;
    padding:8px;
    border:1px solid blue;
    background-color:lightblue;
    position: absolute;
    z-index: 2;
}
</style>

</head>

<body>

<h1>Testpage</h1>

<label id="username">Username : </label><input type="text" / size="50"> 
<span id="hint">Tooltip</span>

<script type="text/javascript">

$(document).ready(function() {

    var changeTooltipPosition = function(event) {
  var tooltipX = event.pageX + 15;
  var tooltipY = event.pageY - 20;
  $('div.tooltip').css({top: tooltipY, left: tooltipX});
};


var testext = {
  "hint_text": {
"attr1": "String1/1",
"attr2": "String1/2"
  },
  "username_text": {
    "attr1": "String2/1",
   "attr2": "String2/2"
  }
}; 


var showTooltip = function(event, id) {
  var outputid= id+"_text";
  $('div.tooltip').remove();

  $('<div class="tooltip">'+testext[$outputid]['attr2']+'</div>')
        .appendTo('body');
  changeTooltipPosition(event);
};

var hideTooltip = function() {
   $('div.tooltip').remove();
};

$("span#hint,label#username'").bind({
   mousemove : changeTooltipPosition,
   mouseenter : showTooltip,
   mouseleave: hideTooltip
});
});

</script>

</body>
</html>

例如,我有 id“hint”,并且我想使用hint_text/attr2 工具提示。因此,我获取 id ( var showTooltip = function(event, id)) 并向其附加“_text” (var outputid= id+"_text";),然后使用它来获取工具提示 ($(''+testext[$ outputid]['attr2']+'').appendTo('body');)。

当我使用像 testext['hint_text']['attr2'] 这样的静态值时,它可以工作,但像这样我无法完成它。

我哪里出错了?

有什么想法吗?

提前致谢。

最佳答案

嗨,请尝试以下代码....

<html>
<head>

 <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>

<style type="text/css">
#hint{
    cursor:pointer;
}
.tooltip{
    margin:8px;
    padding:8px;
    border:1px solid blue;
    background-color:lightblue;
    position: absolute;
    z-index: 2;
}
</style>

</head>

<body>

<h1>Testpage</h1>

<label id="username">Username : </label><input type="text" / size="50"> 
<span id="hint">Tooltip</span>

<script type="text/javascript">

$(document).ready(function() {

    var changeTooltipPosition = function(event) {
  var tooltipX = event.pageX + 15;
  var tooltipY = event.pageY - 20;
  $('div.tooltip').css({top: tooltipY, left: tooltipX});
};


var testext = {
  "hint_text": {
"attr1": "String1/1",
"attr2": "String1/2"
  },
  "username_text": {
    "attr1": "String2/1",
   "attr2": "String2/2"
  }
}; 


var showTooltip = function(event, id) {
if(id!='document'){
  var outputid= this.id+"_text";
  $('div.tooltip').remove();

  $('<div class="tooltip">'+testext[outputid]['attr2']+'</div>').appendTo('body');
  changeTooltipPosition(event);
  }
};

var hideTooltip = function() {
   $('div.tooltip').remove();
};

$("span#hint,label#username").bind({
   mousemove : changeTooltipPosition,
   mouseenter : showTooltip,
   mouseleave: hideTooltip
});

});
</script>

关于javascript - 带 JQuery 的工具提示事件和带 id 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30775896/

相关文章:

javascript - VSCode 用户代码片段在 jsx 中不起作用

javascript - 如何将 jquery 与 Jtable 的自定义输入和显示()一起使用?

javascript - Jquery ui 如何选择那些启用的选项卡?

jquery - 可调整大小的模态弹出窗口

javascript - jQuery 如果元素 id 存在,则将类添加到同一元素

html - 适合导出为 html 和 pdf 的格式?

具有随机值的页面元刷新上的 HTML5 错误(强制刷新)

html - 使用 CSS 将 SVG 样式作为内容标签加载到 HTML

javascript - 如何告诉谷歌地图 API 加载脚本在 React 组件中寻找回调?

javascript - 单击单元格上的事件而不是整行 - 使用 FIDDLE