从其他页面调用jquery函数

时间:2017-07-17 14:35:27

标签: jquery html

我有一个问题我在使用ajax在div中加载页面 这是一个代码

HTML

<div id="body"></div>
<a class='olink' href='#'>page name</a>

脚本

$('.olink').on('click',function(e){ 
    var link = this.href;
    $.ajax({ 
        url: page, 
        type:'POST', 
        data : name, 
        success: function(resp){ 
            $("#body").html(resp); 
        } 
        e.preventDefault();  
    }); 
});

上面的代码工作正常并在我的div中加载页面,现在问题是当我点击任何链接从加载的页面这个脚本不工作...目前我在主页的底部添加我的脚本,我应该添加每个页面都有这个脚本吗?

2 个答案:

答案 0 :(得分:0)

  

脚本执行

     

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

     

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

$( "#a" ).load( "article.html" );
     

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

$( "#b" ).load( "article.html #target" );
你也可以 您可以使用$.getScript("url");来获取脚本或eval来源eval(source)

答案 1 :(得分:0)

如果我理解正确并且您在单击#body元素中的链接时尝试触发脚本,那么您需要使用委托事件处理程序:

$('#body').on('click', '.olink', function() {
  var link = this.href;
    $.ajax({ 
        url: page, 
        type:'POST', 
        data : name, 
        success: function(resp){ 
            $("#body").html(resp); 
        } 
        e.preventDefault();  
    }); 
});