私はweblanguagesの経験がほとんどありませんので、これは単純なエラーかもしれません。スクリプトは実行されません
<a href="#div-id">button</a>
のような内部リンクを持つウェブページがあります。しかし、応答性の高いブートストラップメニューのため、スクロールがオーバーシュートすることがあります。問題はまったく同じ前の質問で説明されており、私は受け入れソリューションを実装しようとした:
How can I use HTML ID links with the Bootstrap navbar-header?
しかし、示唆された機能が実行されることはありません。私はそれを次のように実装しました。テストの愚かな方法として、私は2つの警告文(無関係の関数のためのもの)を含んでいます。最初の警告文は正しく実行され、2番目の警告文は実行されません。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(function() { // on document ready
var div = $('#showOrHideDiv'); // cache <div>
$('#action').click(function() { // on click on the `<a>`
alert('here'); // => PROPERLY EXECUTED
div.fadeToggle(1000); // toggle div visibility over 1 second
});
// listen for click events originating from elements with href starting with #
$('body').on('click.scroll-adjust', '[href^="#"]', function (e) {
alert('here'); // => NEVER EXECUTED
var $nav;
// make sure navigation hasn't already been prevented
if (e && e.isDefaultPrevented()) return
// get a reference to the offending navbar
$nav = $('div.navbox')
// check if the navbar is fixed
if ($nav.css('position') !== "fixed") return
// listen for when the browser performs the scroll
$(window).one('scroll', function() {
// scroll the window up by the height of the navbar
window.scrollBy(0, -$nav.height())
});
});
});
</script>
誰でも私の実装で間違いを指摘できますか?
あなたは決して追加クリックイベント:
は、ここで私は、コードを追加されたコメントで、新しいコードです。 – Jason
私はちょうどこれらのスクリプトをコピー/過去、私は正しく書くことができません。しかしコメント(私ではない)によれば、これは 'href'が'# 'で始まるリンク上のすべてのクリックイベントを選択すべきですか?しかし、私はそれをやっていないと思う。どのように見えるべきかについての提案はありますか? – Scipio
これは ''の関数が呼び出されましたが、 ''の関数は呼び出されていませんが、.on( "click"、 "a [href^= '#']"、function(e){ – Jason