【问题标题】:jQuery .load(): loading a div when clickjQuery .load():点击时加载一个 div
【发布时间】:2011-07-01 14:19:07
【问题描述】:

我想在单击图像时实现这一点,在该图像所在的 div 中,加载了具有来自另一个 .html 的其他内容的 div,但我无法完成。

如果我这样做,以下,它完美地工作:

$('#windows_link').click(function(){
        $('#apps_container').html("Hi!");
    });

但是如果我执行以下操作,它就不起作用;它实际上并没有做任何事情:

$('#windows_link').click(function(){
        $('#apps_container').load('windows_apps.html #apps_container');
    });

有什么帮助吗?

提前非常感谢!

【问题讨论】:

  • 您是否使用过像 Firebug 这样的工具来确定您的 'windows_apps.html #apps_container' 是否真的返回了任何东西?
  • 您是在本地尝试吗?如果是,在哪个浏览器中?
  • 嗨! @Gregg 我还没有使用它,但它应该存在!
  • @noloman - 这是 chrome 中的跨域请求,并且不起作用......这就是你被阻止的地方。如果您在实际站点(或本地网络服务器)上尝试它,您应该会很好。
  • @Acorn - 他正在 本地尝试,当您在本地时,任何其他路径都是另一个域,在某些浏览器中......在 chrome 中这是真的。跨度>

标签: javascript jquery events load click


【解决方案1】:

当您在本地时,任何其他 HTML 路径在某些浏览器中都被视为 另一个 域(Chrome 在列表中)。这意味着您尝试的任何 AJAX 请求(.load() 在下面执行的操作)都将被 same origin policy 阻止。

您所拥有的可能会正常工作......只是在 Chrome 中不是本地的。

您可以通过在 Firefox 等其他浏览器中进行测试来验证这一点,或者通过启动 chrome with a command line switch 来禁用此安全功能(用于测试!,之后将其关闭):

chrome.exe --disable-web-security

【讨论】:

  • 太棒了,所以我将在另一个浏览器中尝试,并相信它会在上传到 Web 服务器时工作。谢谢大家的帮助!
  • @noloman:真的,除非你有充分的理由,否则最好在与网站最终托管环境相同的服务器上测试开发。最好是那个服务器。否则很可能会出现无法预料的差异,就像这样。
  • @noloman - 我在这里使用 orbling,设置一个 localhost Web 服务器(那里有很多免费选项)来进行测试,你会更快乐(并且更少推送到另一个站点进行测试小东西)。
【解决方案2】:

如果第一次尝试正常,我认为问题就在这里

.load('windows_apps.html #apps_container');

当您单击该链接时,您是否在 .net 的 firebug 面板或调试控制台中看到调用(ajax 调用是否成功完成)?

windows_apps.html 是否在调用它的页面脚本的同一文件夹中?

该页面中是否有一个名为 apps_container 的 div?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多