关于php:Loaded()内容不会继承javascript

Loaded() content won't inherit javascript

也就是说,我有两个文件:

  • 索引文件
  • some-content.php文件

在index.php中,我加载我的css和js:

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

现在,我要做的是使用"js/web.js"中的load()事件加载"some content.php":

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

长话短说:

当我加载"some content.php"时,它从css/web.css继承了所有必要的css样式,而不必在"some content.php"中包含其他链接href。

但似乎没有任何一个JS脚本在工作——存储在JS/web.js中的脚本在index.php中被srcd。

是否强制添加:

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

再次出现在"some content.php"中?

谢谢


您正在将工具提示绑定到页面加载时的元素。添加新内容时,需要将工具提示绑定到新添加的元素。您可以在Ajax调用的回调函数中这样做,例如:

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

这通常是因为您将事件与直接绑定绑定在一起,例如…

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

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

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

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

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


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

动态生成内容使用on()

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

例子:

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

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