我正在使用lite工具提示菜单模板选项。我想在点击工具提示中的一个列表项时提醒一些事情。我想定位工具提示列表项。
<td>
<a href='#' class = 'sales_tooltip' data-templatename='Conifer'
data-title='<div class = "tooltip-menu">
<ul><li class="sales_rep"><a href="#">Sales Rep 1 </a></li>
<li class="sales_rep"><a href="#">Sales Rep 2 </a></li>
<li class="last-child sales_rep"><a href="#">Sales Rep 3 </a></li>
</ul>
</div>'>
<i class = 'fa fa-male ' aria-hidden='true'></i>
</a>
</td>
Javascript代码
$('a.sales_tooltip').find('.sales_rep').click(function(){
alert('clicked');
console.log("Tooltip clicked");
});
我无法在工具提示中定位li项目。
我实际上想要将a.sales_tooltip
的数据标题属性更改为单击它时单击的列表项。这就是我的尝试。
$('body').on('click', '.tooltip-menu li.sales_rep', function() {
var $set_value = $(this).html();
$(this.closest('a.sales_tooltip')).attr('data-title', $set_value);
});
答案 0 :(得分:0)
li.sales_rep
元素不是a.sales_tooltip
的子元素,因此您无法使用$('a.sales_tooltip').find('.sales_rep')
。
此代码正在搜索类sales_rep
的元素,这些元素是a.sales_tooltip
的子元素。
您正在使用的工具提示库可能是将工具提示元素添加到正文中,因此您可以使用
$('body').on('click', '.tooltip-menu li.sales_rep', function() {
alert('clicked');
console.log("Tooltip clicked");
});
经过长时间的讨论后,实际问题似乎是&#34;如何更改之后工具提示的内容?&#34;
嗯 - 在Lite工具提示中,无法销毁/重置/重新启动工具提示。
解决方案 - 当我们需要它时 - 用克隆元素(同一个)替换原始元素(具有工具提示),并为该克隆元素创建新的工具提示。
$('body').on('click', '.tooltip-menu li.sales_rep', function() {
if (confirm("Have you chosen your sales rep?")) {
var $set_value = $(this).html();
var el = $('#'+ $(this).data('for'))
var cloned_el =el.clone();
cloned_el.attr('data-title', $set_value);
el.replaceWith(cloned_el);
cloned_el.LiteTooltip({
location: 'left-bottom',
trigger: 'hoverable',
padding:0,
margin:0
});
return true;
}
});
这是一个有效的演示: http://codepen.io/anon/pen/KrbABp