$(this).load(function(){....});不与JSTestDriver一起工作

时间:2010-12-29 18:29:48

标签: jquery js-test-driver

源代码使用JQuery向元素添加加载事件处理程序。 我正在使用JSTestDriver进行测试。

代码如下所示: -

       $(this).load(function () {
           alert("Foo");
       });

当我运行测试时,警报(“Foo”)永远不会发生。 如果我将其更改为: -

       $(this).ready(function () {
           alert("Foo with Ready");
       });

测试工作。

但是,如果源代码在HTML中单独执行, 然后它运行正常,我甚至可以在事件发生时获得警报(“Foo”) 是“加载”。

这是JSTestDriver中的错误还是我做错了什么?做, 我必须等到所有事件处理程序在单元中被触发 试验。 (Thread.join()中有什么东西?)

-Ajay

2 个答案:

答案 0 :(得分:0)

不确定为什么加载事件没有绑定。一个更好的问题是为什么jquery有两个不同的方法具有相同的名称(load()来绑定一个事件,而load()来加载一些ajaxed内容)。这是一种替代语法,但是您想要尝试迁移。

$(this).bind('load', handler);

如果这对您有用,请选择此答案旁边的复选标记。我想让足够的代表留下评论哈哈。谢谢!

另外,你的绑定代码在哪里?是否有可能在图像加载后绑定事件?

答案 1 :(得分:0)

我相信您的问题不在事件绑定中,而是在代码中$(this)的含义。

我们可以获得更广泛的范围吗?

测试的一种方法是将$(this)替换为您尝试触发事件的元素的实际选择器。

甚至在事件绑定之前,进行此调用以确保元素的id与目标元素的id匹配。

alert($(this).attr('id'));