我很确定这是一个愚蠢的问题,但我搜索过,找不到相似/相同的情况。
所以,我有一个主要的PHP页面,其中我在HTML的head
部分中包含了几个Javascript文件。然后在某些时候我通过file_get_contents
从外部源获取内容(HTML + Javascript)并将其输出到主页。
这个新输出通常会从主页面中获取CSS样式,但任何依赖于主要加载的Javascript代码都无法正常工作。即使我在主页中的document.ready
内放置了所需的Javascript,它仍然无效。
仅举例说明代码:
<html>
<head>
<link href="style.css" rel="stylesheet">
<script src="somejslib.js"></script>
</head>
<body>
Some HTML here generated by PHP
<?php
$content = file_get_contents('http://whatever/page');
echo $content;
?>
</body>
在抓取的内容中,我会有类似的内容:
<div>
<form>
<input type="text" id="bla">
</form>
</div>
<script>$('#bla').datepicker({ somecodehere });</script>
datepicker
包含在主页面中加载的库中,但无论我在何处放置此代码都无法使用。
任何提示?
P.S:唯一可行的方法是,如果我再次包含新内容中的所有Javascript库,这当然不是解决方案。答案 0 :(得分:0)
确保在加载外部内容后附加侦听器或使用on()事件处理程序 http://api.jquery.com/on/
P.S。我现在看到你的代码实际上缺少document.ready,因此在执行之前不等待文档加载。我不确定哪些适用于您的实际代码,因为您只发布了一个示例。如果您通过ajax提取内容,例如应用第一个解决方案,否则只需将文件包装好就可以了。
答案 1 :(得分:0)
解决。
显然这是我一直以来的错误。我多次加载Jquery(不同版本)。
似乎并非所有版本的jQuery都能解决这种情况。