2017-07-27 24 views
0

jqueryに慣れていません。私はポップオーバーを作ったが、私がポップオーバーを設定したボタンをクリックすると、ページの上に私を連れて来る。私はデフォルトの出来事を防ぐことを試みたが、それは私のために働かなかった。私はどこが間違っているのか分からない。ここに私のコードです: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イベントでDefault()を防ぐ必要があります。 popover()関数(jQuery標準のAFAIKではありません)を投稿すると、さらに手助けをすることができます。

+0

popover htmlを追加しました。私は、.jsファイルと関数のためにブートストラップとjQueryを使用しています。 –

+0

ああ - あなたはOPでブートストラップは言及していない!あなたは答えがありがとう。 – richplane

+0

どうもありがとうございました。 –

0

残念ながら、あなたのコードでは何も防ぐことはできません。

$(document).ready(...) 

は、DOMが完全にロードされると呼び出されます。その時点で防止するイベントはありません。 実際のpopover-elementをクリックすると、デフォルトの動作が行われないようにします。

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

これで、予想通りにポップアップが表示され、スクロールが消えるはずです。

または、とし、がpopover-elementに定義されていると仮定して、href="#"部分を削除することもできます。あなたがそれを必要としない場合は、ちょうどそうしてください!

+0

'href'が原因です...' href = "#" 'を削除すると、問題が修正されます。 'e.preventDefault();'は必要ではなく、ブートストラップは気をつけます。 –

+0

hrefの部分を削除すると、ポップオーバーが機能しません。ですから、私はhref = "#idontexist"のようなことをするかもしれませんが、URLは悪く見えます。私はそれがこのようなものになりたい。 –

+0

JS関数についてはどうですか?それは動作しませんでしたか? –

関連する問題