[英]How do I create a self-closing link inside a tipsy tooltip without reloading the page?
我正在使用Tipsy來顯示一些內容; 在此內容內,我有一個鏈接(大X),用於關閉工具提示。 但是,當單擊時,即使我將其設置為返回false,它也只是跳到頁面頂部並且無法關閉工具提示。 我的代碼如下所示:
$(".favs").tipsy({
fade: true,
gravity: 'n',
trigger: "manual",
html: true,
offset: 5,
opacity: '0.9',
delayIn: 0,
delayOut: 0,
title:
function() {
return $("#favs_1").html();
}
});
$(".favs").click(function(){
$(this).tipsy("show");
return false;
});
$(".closetip").click(function(){
$(".tipsy").remove();
return false;
});
應用於此HTML:
<div style="height: 1800px;">
<br /><br /><br /><br />
<a href="#" class="favs">Favorite Movies</a>
</div>
<div id="favs_1" style="display: none;">
<a href="#" class="closetip" style="float: right;">X</a>
Tooltip content
</div>
相關小提琴: http : //jsfiddle.net/gZkJJ/
我通過點擊任何一個工具提示來解決了問題的一半。 我試圖通過event.stopPropagation();來排除某些div中的點擊。 -導致工具提示被關閉,但是a)所涉及的div不被豁免,b)X仍跳至頁面頂部。 與上述HTML相同,但JavaScript稍有不同:
$(".favs").tipsy({
fade: true,
gravity: 'n',
trigger: "manual",
html: true,
offset: 5,
opacity: '0.9',
delayIn: 0,
delayOut: 0,
title:
function() {
return $("#favs_1").html();
}
});
$(".favs").click(function(){
$(this).tipsy("show");
return false;
});
$("html, .closetip").click(function() {
$(".tipsy").remove();
});
$(".tipsy, .tipsy-n, .tipsy-inner, .favs").click(function(event){
event.stopPropagation();
});
有關此變體的相關提琴: http : //jsfiddle.net/u62eH/
我包括了過多的高度和間距,以便您可以驗證鏈接是重新加載框架還是強制滾動到頂部,可以通過在按下X之前稍微向下滾動來完成。
任何幫助將非常感激。 我覺得我缺少明顯的東西。
在用於單擊html
元素或.closetip
元素的事件處理程序中,如果它是定位點,則調用e.preventDefault()
:
$("html, .closetip").click(function(e) {
if(e.target.nodeName === 'A')
e.preventDefault();
$(".tipsy").remove();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.