2017-07-27 29 views
0

我對jquery不是很熟悉。我做了一個popover,但是當我點擊按鈕時,我設置了popover,它將我帶到了頁面頂部。我試圖防止默認事件,但它並沒有爲我工作。我不知道我在哪裏錯了。這是我的代碼:JQuery點擊把我帶到頁首

<script> 
$(document).ready(function(e) { 
    $('[data-toggle="popover"]').popover(); 
    e.preventDefault(); 
}); 
</script> 

它只是幾行,所以想寫在HTML文件中。當我點擊該按鈕時,我能做些什麼來保持它?

這裏是我的整個酥料餅代碼:

<a href="#" data-toggle="popover" data-trigger="focus" title="Telefon" data-content="Call us: (123) 123 1234" class="btn btn-default" role="button">example</a> 
+0

你能後的'[數據切換= 「酥料餅」]'HTML? –

+0

我張貼在主頁上。 –

回答

0

@Burak蘇美爾,從HREF刪除#並將其更改爲:

href="javascript:void(0)"

+0

好的,這對我很好。謝謝。 –

+0

非常感謝@BurakSümer接受我的回答。你可以給我一個投票嗎? 在此先感謝。 :-) –

0

您要阻止默認的事件的document.ready,而不是點擊。你說你點擊按鈕來獲得彈出窗口,所以你需要在click事件中設置preventDefault()。如果你發佈popover()函數(它不是jQuery標準的AFAIK),我們可能會幫助你進一步。

+0

我添加了popover html。我使用引導程序和jQuery作爲.js文件以及函數。 –

+0

啊 - 你沒有提到OP中的Bootstrap!很高興你有一個答案。 – richplane

+0

是的,懂了,謝謝。 –

0

不幸的是,你不能防止你的代碼中的任何東西。

$(document).ready(...) 

DOM完全加載後會被調用。目前沒有任何事件可以預防。 你想要的是一旦你點擊實際的彈出式元素,以防止默認行爲。你可以這樣做:

$('[data-toggle="popover"]').on('click', function(e) { 
    e.preventDefault(); 
    return true; 
}); 

現在你的彈出窗口會按預期顯示,滾動應該消失。

你也可以刪除我的假設href="#"部分是在你的popover-element上定義的。只要這樣做,如果你不需要它!

+0

如果'href'是罪魁禍首......刪除'href =「#」'將解決這個問題。 'e.preventDefault();'不是必需的,bootstrap會保持休息。 –

+0

當我刪除href部分彈窗不工作。所以我可能會做一些像href =「#idontexist」,但然後url看起來不好。我希望它是這樣的。 –

+0

JS函數怎麼樣?它不工作?! –

相關問題