Jquery 导航栏href上的onclick事件
这是我的导航栏内容Jquery 导航栏href上的onclick事件,jquery,twitter-bootstrap-3,Jquery,Twitter Bootstrap 3,这是我的导航栏内容 <div class="col-md-3"> <div class="bs-docs-sidebar hidden-print affix" role="complementary"> <ul class="nav bs-docs-sidenav" id="titles"> </ul> </div> </div> <script type="text/jav
<div class="col-md-3">
<div class="bs-docs-sidebar hidden-print affix" role="complementary">
<ul class="nav bs-docs-sidenav" id="titles">
</ul>
</div>
</div>
<script type="text/javascript">
$(function(){
var html = '';
$("td > h1 > a").each(function(){
html = html + '<li><a href="#" data-scroll="' + $(this).attr('data-anchor') + '">' + $(this).text() + '</a></li>';
});
document.querySelector('#titles').innerHTML = html;
});
$('#titles > li > a').on('click', function() {
console.log('called');
var scrollAnchor = $(this).attr('data-scroll'),
scrollPoint = $('tbody[data-anchor="' + scrollAnchor + '"]').offset().top - 28;
$('body,html').animate({
scrollTop: scrollPoint
}, 500);
return false;
});
$(函数(){
var html='';
$(“td>h1>a”)。每个(函数(){
html=html+'';
});
document.querySelector(“#titles”).innerHTML=html;
});
$('#titles>li>a')。在('click',function()上{
log('called');
var scrollAnchor=$(this).attr('data-scroll'),
scrollPoint=$('tbody[data anchor=“”+scrollAnchor+'“]').offset().top-28;
$('body,html')。设置动画({
scrollTop:scrollPoint
}, 500);
返回false;
});
第一个函数将根据html内容填充数据。第二个函数将处理导航栏内容中的单击事件
但是,第二个函数永远不会执行
有人能告诉我如何解决这个问题吗?当您创建HTML时。 你应该使用。您必须使用委托事件方法 一般语法
$(document).on(event, selector, eventHandler);
理想情况下,您应该将文档
替换为最近的静态容器。在您的案例中,它是“#titles”
。所以使用
$('#titles').on('click', 'li > a', function() {
console.log('called');
var scrollAnchor = $(this).attr('data-scroll'),
scrollPoint = $('tbody[data-anchor="' + scrollAnchor + '"]').offset().top - 28;
$('body,html').animate({
scrollTop: scrollPoint
}, 500);
return false;
});
当您创建HTML时。 你应该使用。您必须使用委托事件方法 一般语法
$(document).on(event, selector, eventHandler);
理想情况下,您应该将文档
替换为最近的静态容器。在您的案例中,它是“#titles”
。所以使用
$('#titles').on('click', 'li > a', function() {
console.log('called');
var scrollAnchor = $(this).attr('data-scroll'),
scrollPoint = $('tbody[data-anchor="' + scrollAnchor + '"]').offset().top - 28;
$('body,html').animate({
scrollTop: scrollPoint
}, 500);
return false;
});
当您创建HTML时。 你应该使用。您必须使用委托事件方法 一般语法
$(document).on(event, selector, eventHandler);
理想情况下,您应该将文档
替换为最近的静态容器。在您的案例中,它是“#titles”
。所以使用
$('#titles').on('click', 'li > a', function() {
console.log('called');
var scrollAnchor = $(this).attr('data-scroll'),
scrollPoint = $('tbody[data-anchor="' + scrollAnchor + '"]').offset().top - 28;
$('body,html').animate({
scrollTop: scrollPoint
}, 500);
return false;
});
当您创建HTML时。 你应该使用。您必须使用委托事件方法 一般语法
$(document).on(event, selector, eventHandler);
理想情况下,您应该将文档
替换为最近的静态容器。在您的案例中,它是“#titles”
。所以使用
$('#titles').on('click', 'li > a', function() {
console.log('called');
var scrollAnchor = $(this).attr('data-scroll'),
scrollPoint = $('tbody[data-anchor="' + scrollAnchor + '"]').offset().top - 28;
$('body,html').animate({
scrollTop: scrollPoint
}, 500);
return false;
});
@克里斯托弗,太好了example@ChristopherW伟大的example@ChristopherW伟大的example@ChristopherW,很好的例子