【问题标题】:How do I find if an element has been loaded using JQuery如何查找是否已使用 JQuery 加载元素
【发布时间】:2011-04-15 04:36:57
【问题描述】:

我正在将数据加载到 flexigrid 中。我正在尝试使用 JQuery 选择器使行可点击,但我无法这样做。我想知道元素是否已经完全加载,我该怎么做?

我想做类似if(element.load == true){//do this} 的事情。我不确定如何检查。谁能帮我解决这个问题。

好的,所以我已经有了这个 div,并且正在将一个 flexigrid 绑定到那个 div。我想知道flexigrid是否被绑定了。

$("#GridLoad").flexigrid();

我想知道flexigrid是否已经绑定,之后需要运行一段代码。

在 div Gridload 上使用 live() 总是正确的,因为它已经存在。 :(

【问题讨论】:

  • 您是否使用 $.live() 或 $.delegate() 将点击事件绑定到您的行?
  • 我正在将一个flexigrid绑定到div,我想在flexigrid绑定到那个div之后执行一段代码

标签: javascript jquery element jquery-events


【解决方案1】:

我想知道元素是否已完全加载?

似乎有一个onSuccess 回调。

$("#GridLoad").flexigrid({
   'onSuccess': function() {
      // Do this.
   }
});

否则,如果您正在绑定的内容在表更新时丢失,请通过on() 附加事件,或者直接在持久祖先元素中捕获它们并检查event.target

【讨论】:

  • @macha 不用担心,幸运的是我找到了它,因为 flexigrid 的文档记录很差:P
  • 是的,它的文档记录很差。我正在尝试做 onSelect、onClick 等,很幸运找到了这个。
  • @macha 我发现它是因为我检查了插件的代码。 :)
【解决方案2】:

你可以使用 $(element).live('click', function () { // do something });

这样,如果它稍后加载,它将具有适当的事件绑定。

【讨论】:

  • 你好蒂姆,谢谢你的回答,我已经做了修改,请看一下
【解决方案3】:

你可以使用 jquery 的 load 方法的回调函数。

像这样:
$('#result').load('ajax/test.html', function() {
alert('Load was performed.');
});

即使您不使用“加载”方法,jquery 中的几乎所有方法都支持在功能完成后发生的回调。
比如ajax()有成功和失败回调,动画有回调等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    相关资源
    最近更新 更多