小编Gal*_*way的帖子

脚本被jQuery .load剥离

我认为这个问题以前没有提出过,至少不是我需要回答的问题.我正在使用jQuery的.load函数.加载页面片段时遇到问题.

使用类似的东西时:

$('#content').load('loadTest.html');
Run Code Online (Sandbox Code Playgroud)

loadTest.html上的所有脚本加载都很好.但是,在加载页面片段时,如下所示:

$('#content').load('loadTest.html #content');
Run Code Online (Sandbox Code Playgroud)

在更新DOM之前删除脚本

这在http://api.jquery.com/load/中有明确记载,其中说:

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

我知道我可以在外部加载可以在任何地方使用的脚本,但问题是,我正在使用页面范围的ajax系统,其中所有内容都是动态加载的.所以我真的不喜欢在外部文件中使用我将要编写的每个javascript函数(此时为100).特别是因为其中一些javascript函数是从数据库加载的值中创建的,我无法在.js文件中考虑这些值.

在更新DOM之前,是否有任何解决方法可以删除脚本?我能以某种方式手动加载它们吗?任何微小的例子对我都有帮助.

html javascript php jquery load

8
推荐指数
1
解决办法
1157
查看次数

jQuery的.on函数似乎不喜欢'load'事件

我有一个完全由ajax驱动的网站,所以最近我不得不研究委托技术.我已经了解到.live和.delegate已被弃用,新的​​功能是.on.

如果我正在动态地将网页加载到当前页面(AJAX)上的一个部门中,如下所示:

<html>
<head>
<script src="jquery.js">
</script>
<script>
function ajaxTest()
{
    $('#content').load('test.php');
}
</script>
<script type="text/javascript">
$(function(){
    $(document).on("click", "#map", function(){
        alert("it has been loaded");
    });
});
</script>
</head>
<body>
    <div id="content">
        <button onClick="ajaxTest()" value="Click Me">
            This is to be clicked
        </button>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

test.php的样子

<html>
  <head>
  </head>
  <body>
    <div id="map">THIS IS THE MAP</div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后我可以点击"这就是地图"这个词,它确实显示了警报.我遇到的问题不是做:

$(document).on("**click**", "#map", function(){
Run Code Online (Sandbox Code Playgroud)

我需要更多的东西:

$(document).on("**load**", "#map", function(){
Run Code Online (Sandbox Code Playgroud)

它显然不起作用,所以我想知道是否有类似的东西.我甚至询问这个问题的全部原因是因为在某些页面中,我没有在地图分区中使用"这是地图",而是使用谷歌地图或swf对象.任何帮助,将不胜感激.

如果您只是想回答如何将谷歌地图加载到尚不存在的部门,那也会有所帮助;)

javascript ajax jquery delegates

4
推荐指数
1
解决办法
5419
查看次数

map.getBounds()奇怪的行为(Uncaught TypeError:无法读取未定义的属性'getNorthEast')

我刚刚开始使用Google Maps API.这个问题很容易理解,但我不知道如何解决它.这是Google为您提供的除警报之外的简单代码示例.

function initialize() {
    var mapOptions = {
        center: { lat: 43.680039, lng: -79.417076},
        zoom: 13
    };
    map = new google.maps.Map(document.getElementById('map'), mapOptions);
    google.maps.event.addListener(map, 'dragend', change );
    google.maps.event.addListener(map, 'zoom_changed', change );

    alert(map.getBounds().getNorthEast().lat());
}
google.maps.event.addDomListener(window, 'load', initialize);
Run Code Online (Sandbox Code Playgroud)

map.getBounds().getNorthEast().lat()从除load之外的任何其他事件调用时起作用.当它是一个像缩放或拖动的地图事件时,它工作正常,但当我尝试在这里调用它时,我得到错误"Uncaught TypeError:无法读取未定义的属性'getNorthEast'".任何人都知道这里有什么或我如何解决这个问题?

javascript google-maps

3
推荐指数
1
解决办法
6944
查看次数

标签 统计

javascript ×3

jquery ×2

ajax ×1

delegates ×1

google-maps ×1

html ×1

load ×1

php ×1