Jquery 无法为handlebar span类调用onclick
我面临jQueryOnClick事件和手柄的问题 我有一个把手模板,上面有ul、li和span元素,形成了一个水平导航菜单。 我为每个span定义了一个类,为hover和selected编写了css类 Hover工作正常,但是如果我选择span元素,我不会被重定向到包含在其中一个JS文件中的onclick事件 这是我的车把模板Jquery 无法为handlebar span类调用onclick,jquery,handlebars.js,Jquery,Handlebars.js,我面临jQueryOnClick事件和手柄的问题 我有一个把手模板,上面有ul、li和span元素,形成了一个水平导航菜单。 我为每个span定义了一个类,为hover和selected编写了css类 Hover工作正常,但是如果我选择span元素,我不会被重定向到包含在其中一个JS文件中的onclick事件 这是我的车把模板 var policyMenu = '<ul class="menu menuStyle"><li style="float:left;"><
var policyMenu = '<ul class="menu menuStyle"><li style="float:left;"><span class="mn selected" rel="environmental" title="Environmental policy" >Environmental</span></li><li style="float:left;"><span class="mn" rel="employee">Employee</span></li><li style="float:left;"><span class="mn" rel="customer">Customer</span></li><li style="float:left;"><span class="mn" rel="assets" >Assets</span></li></ul><br><br><br><div id="chart_container" style="min-width:39%;"></div>';
我无法在onclick中打印警报。您应该使用委派,因为在加载脚本时,DOM树上不存在新元素。 这样,事件处理程序将附加到参与选择器的每个新元素
$(document).on('click', 'ul.menu li span.mn', function() {
if ( $(this).hasClass('selected') )
return;
$('ul.nav li span.mn').removeClass('selected');
$(this).addClass("selected");
selectedMenu = $(this).attr('rel');
displaySearchOptions();
});
来源:您是否尝试过委派?我对车把一无所知,但可能是动态添加了这些元素。Try:
$(document).on('click','ul.menu li span.mn',function(){})
确实有效@MelanciaUK谢谢你的工作。但是我仍然有一个问题,CSS类在选择后没有改变。@Aamir这真的很奇怪。.它是在小提琴中工作的。是因为我在包含的JS文件中有脚本吗?如果元素选择了类
,那么它将返回,所以它永远不会改变。if($(此).hasClass(“选定”)返回;是正确的。如果当前元素已被选中,它将返回,而这里不是这种情况。如果不是,它将从以前选定的元素中删除选定的类,并将选定的类分配给当前选定的元素。它现在正在工作。我有一个打字错误,并使用了不同的类名“nav”而不是“menu”.现在我纠正了它,它工作得很好。
$(document).on('click', 'ul.menu li span.mn', function() {
if ( $(this).hasClass('selected') )
return;
$('ul.nav li span.mn').removeClass('selected');
$(this).addClass("selected");
selectedMenu = $(this).attr('rel');
displaySearchOptions();
});