我正在使用jQuery 1.4.2。 使用CSS选择器“span.accordionOn”,我正在处理一个click事件。 在屏幕上,它工作正常。当我导航到下一个屏幕时,函数不会被调用。
jQuery处理程序如下所示。我将它们保存在js文件中并为每个页面加载加载js文件。
$("span.accordionOn").click(function(event){
$(this).parents(".toggleOuterCustom");
$(this).parents(".toggleOuterCustom").find(".lHeight").toggleClass('lHeighttranslate');
return false;
});
// toggle link icon
$('span.accordionOn').click(function(){
$(this).toggleClass('accordionOff');
});
答案 0 :(得分:1)
如果没有看到更多代码,就很难找到确切的问题,但这里有一个猜测:
$(document).on("click", "span.accordionOn", function(event){
$(this).toggleClass('accordionOff'); //I merged the 2 functions
$(this).parents(".toggleOuterCustom");
$(this).parents(".toggleOuterCustom").find(".lHeight").toggleClass('lHeighttranslate');
return false;
});
试试上面的代码。如果这样可行则问题如下:
span.accordionOn
元素span.accordionOn
元素,则该事件将不会绑定到它们on
事件将适用于文档中所有当前和未来的span.accordionOn
项目,以解决此问题答案 1 :(得分:0)
我发现了这个问题。是的,你是对的,当我试图绑定时,元素不存在。
然而,对于jQuery 1.4.2,'on()'不存在并使用'live'。这是代码。
$("span.accordionOn").live('click',function(event){
$(this).parents(".toggleOuterCustom");
$(this).parents(".toggleOuterCustom").find(".lHeight").toggleClass('lHeighttranslate');
return false;
});