【问题标题】:Jquery on curl fetched datajquery上curl获取数据
【发布时间】:2010-01-05 07:39:26
【问题描述】:

我有一个通过 curl 从另一个 html 页面填充的 div。现在数据填充正确,但我想在获取数据的 id 或类上使用 jQuery 或 Javascript。 我尝试使用 livequery,绑定但没有用。 你能帮帮我吗?

【问题讨论】:

  • 你能分享一些代码吗?这应该没有问题,因为 curl 的数据由 php 包含在服务器端,而 jquery 是在客户端完成的。所以我怀疑这只是 jquery/html/css 代码的问题。
  • 代码在我的笔记本电脑上,我在办公室,所以没有资源在它们之间移动数据。问题既不在于服务器端代码,也不在于 html/css 。如果我在获取数据后将javascript应用于获取的数据,它可以工作,但我想在数据被卷曲之前使用绑定事件,以便在获取时我不需要并且它们已经绑定。
  • 也许尝试在 Firebug 中调试它,看看填充的数据是否具有您需要的 id 或类。 livequery 只绑定有限的事件,例如点击。请提供代码或网址,以便其他用户更准确地帮助您。

标签: javascript php jquery curl


【解决方案1】:

你是否用 $(document).ready(function() { } ); 包装你的 javascript以确保 dom 完全加载?

例如:

$(document).ready(function() { $('#id').click(function() { // do stuff } ); }

如果通过 CURL 获取的 HTML 是通过直接回发填充的,这将解决问题。如果您要异步填充数据,那么您要么必须使用 .live() 机制进行绑定(通过仔细阅读文档,live() 在某些情况下不起作用,并且是在最新版本中添加的jQuery ——因此请检查您是否拥有正确版本的 jQuery,并且您没有尝试使用该绑定机制不支持的事件)。此外,现场直播有点表演税,所以我会做类似的事情。

$.ajax({ // Lots of ommitted options for simplicity's sake 
          success: function(data, status) { 
               $('#targetDiv').append(data);
               $('#targetDiv #elementID').click(function() { // do stuff });
          }
        });

希望这有助于引导您朝着正确的方向前进。有了代码示例,我们当然可以提供更多帮助。

【讨论】:

    【解决方案2】:

    基本上,您正在尝试绑定到尚不存在的元素。 JavaScript 直接在 DOM(文档对象模型)上工作。这意味着,只要 DOM 中尚不存在特定元素,JavaScript 就无法绑定到它。

    使用 jQuery 不会改变这一点,或者(充其量)只在非常特定的情况下这样做。我只想编写一个包装函数,在其中绑定到新元素,在 AJAX 请求成功完成后调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2018-02-11
      • 2021-07-15
      相关资源
      最近更新 更多