源代码使用JQuery向元素添加加载事件处理程序。 我正在使用JSTestDriver进行测试。
代码如下所示: -
$(this).load(function () {
alert("Foo");
});
当我运行测试时,警报(“Foo”)永远不会发生。 如果我将其更改为: -
$(this).ready(function () {
alert("Foo with Ready");
});
测试工作。
但是,如果源代码在HTML中单独执行, 然后它运行正常,我甚至可以在事件发生时获得警报(“Foo”) 是“加载”。
这是JSTestDriver中的错误还是我做错了什么?做, 我必须等到所有事件处理程序在单元中被触发 试验。 (Thread.join()中有什么东西?)
-Ajay
答案 0 :(得分:0)
不确定为什么加载事件没有绑定。一个更好的问题是为什么jquery有两个不同的方法具有相同的名称(load()来绑定一个事件,而load()来加载一些ajaxed内容)。这是一种替代语法,但是您想要尝试迁移。
$(this).bind('load', handler);
如果这对您有用,请选择此答案旁边的复选标记。我想让足够的代表留下评论哈哈。谢谢!
另外,你的绑定代码在哪里?是否有可能在图像加载后绑定事件?
答案 1 :(得分:0)
我相信您的问题不在事件绑定中,而是在代码中$(this)的含义。
我们可以获得更广泛的范围吗?
测试的一种方法是将$(this)替换为您尝试触发事件的元素的实际选择器。
甚至在事件绑定之前,进行此调用以确保元素的id与目标元素的id匹配。
alert($(this).attr('id'));