Loaded()内容赢得';t继承javascript


Loaded() content won't inherit javascript

I.e,我有两个文件:

  • index.php
  • some-content.php

在index.php中,我加载CSS和JS:

<head><link href="css/web.css" rel="stylesheet" type="text/css" /></head>
<body><script src="js/web.js" type="text/javascript"></script></body>

现在,我正在做的是用"js/web.js"中的load()事件加载"somecontent.php":

 $("#content").load('some-content.php');

长话短说:

当我加载"some-content.php"时,它从CSS/web.CSS继承了所有必要的CSS样式,而不必在"some-contant.php"中包含另一个链接href

但JS脚本似乎都不起作用——那些存储在JS/web.JS中的脚本在index.php 中被srced

我是不是被迫添加:

<script src="js/web.js" type="text/javascript"></script>

再次出现在"somecontent.php"中?

感谢

您正在将工具提示绑定到页面加载时的元素。添加新内容时,需要将工具提示绑定到新添加的元素。您可以在ajax调用的回调函数中执行此操作,例如:

$("#content").load('some-content.php', function() {
  $(this).find("[rel='tooltip']").tooltip();
  // or put stuff like that in an initialization function and call that instead...
});

这通常是因为您使用直接绑定(如…)绑定事件

$('.myClass').click(function () {
    //...
});

这将仅适用于运行此绑定时存在的.myClass元素。

如果要应用于稍后将添加到DOM的元素,请使用更动态的on绑定。

$(document).on('click', '.myClass', function () {
    //...
});

您也可以更具体——而不是使用document——但这只是为了示例的目的。

.load()是一个加载动态内容的AJAX方法。

on()用于动态生成的内容

$('selector').on('event',function(){
//something
});

示例:

$( "#data" ).on( "click", function() {
alert( $( this ).text() );
});

阅读更多关于.on()的信息