javascript - 帮助需要绑定(bind) jquery .error()

标签 javascript jquery image

我需要一些关于我已部署的 javascript/jquery 的帮助。此客户端脚本的功能是为页面上特定选择器内的所有图像设置事件处理程序,如果图像未加载(例如未找到),则将其删除。我的客户端脚本如下,在外部javascript文件的document.ready中触发。

$('.imagecontainer').error(function() { ($this).parent().hide(); });

这有时有效!有时当页面加载时它工作正常,更多时间它对某些图像正常工作但大多数时间它根本不工作。如果图像没有加载它会做什么,即周围的 anchor 标记。图像父级被隐藏。我在函数中包含了警报,以检查它何时被调用,它有时会被触发,但并非总是如此。

所以我想知道我哪里出错了。图片的路径/src 由 C# 在服务器端代码中设置,因为路径是在服务器端派生的,无法更改。

对此有什么建议或想法吗?我在某处读到应该在设置图像源之前绑定(bind)此事件,但不确定这是否可以实现,因为图像源是在服务器端设置的。

一旦我解决了这个问题(希望如此),我又遇到了另一个问题。一些图像是由用户操作动态加载的,在运行时不会出现在页面上。我已经通过使用 jquery 语法 .live('click', function) 等解决了 99% 的事件。有谁知道我是否可以对 .error 做类似的事情或如何设置它。

最佳答案

有几点需要注意:

您的代码段存在语法错误。你有 ($this).parent().hide(); 而不是 $(this).parent().hide();

查看 .error()文档。具体来说,我注意到两件事。首先是观察,如果您在本地运行,调用可能无法正常工作。其次,在评论中,有人观察到以下内容:

It uses the onerror callback. This callback is only defined for img tags. Some browsers (IE,FF,...) support this callback on other objects too. This is great for a global error catching system (window.onerror). This behaviour is NOT conform to standards. WebKit for example does not fire this callback!

根据您提供的小片段,您可能定位到包含图像的元素,而不是图像本身。这很可能是您问题的根源。

关于javascript - 帮助需要绑定(bind) jquery .error(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4149342/

相关文章:

JavaScript 函数等效性

php - 如何在不跟踪机器人的情况下跟踪传出链接点击?

javascript - 当我将列表更改为表格时,如何使我的列表效果起作用?

javascript - 在 jquery 中使用 'this' 的 If 语句语法

php - 更改图像颜色 PHP 或 CSS

python - 不重叠某些像素的随机矩形

javascript - jquery attr 停止工作

javascript - D3 v4 中的 d3.rebind

javascript - 使用razor View 时无法在javascript中提供@

image - Finder 不会为 JPEG (public.jpeg) 文件类型调用我的快速查找生成器