.load()不包含jquery效果

时间:2016-08-05 06:18:16

标签: jquery

我正在创建一个phonegap应用程序,并希望保留一个单独的html文件(_nav.html)进行导航,并使用.load()

在主文件中调用它

我已成功完成此操作,菜单中的下拉菜单不再有效。

我是否还需要在_nav.html文件中包含Jquery文件以使下拉工作?

我经历了thissearched it on stackoverflow然而无法得到答案。

注意:控制台中没有错误。

感谢您的时间。

修改 链接:http://nikhilclasses.com/ok/ 链接到导航:view-source:http://nikhilclasses.com/ok/external/_navigation.html

2 个答案:

答案 0 :(得分:0)

可能是因为JQuery剥离了_nav.html中的脚本。根据 .load()的文档:

  

脚本执行

     

使用不带后缀选择器的URL调用.load()时   表达式,内容在脚本出现之前传递给.html()   除去。这将在丢弃之前执行脚本块。如果   使用附加到URL的选择器表达式调用.load(),   但是,在更新DOM之前,脚本会被删除,   因此不会被执行。两种情况的例子如下所示:

     

这里,作为文档一部分加载到#a的任何JavaScript都将   成功执行。

     

completionHandler

     

但是,在以下情况中,文档中的脚本块为   加载到#b中被删除而不执行:

     

RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^login$ index.php [L]

来源:http://api.jquery.com/load/

答案 1 :(得分:0)

有一个解决方案。在此处为具有相同问题的任何人分享我必须在底部的_navigation.html文件中包含javascript代码。

$(document).ready(function(){

$('.deploy-sidebar').click(function(){
    //$(this).toggleClass('remove-sidebar');
    if( snapper.state().state=="left" ){
      snapper.close();
    } else {
      snapper.open('left');
    }
    return false;
  });
});

包含的HTML文件无法从父文件中读取查询,因此无法解决问题。一旦Jquery被包含在底部。菜单的所有功能都开始工作。