【问题标题】:call function when image src changes图像 src 更改时调用函数
【发布时间】:2013-07-03 14:28:10
【问题描述】:

每当加载具有特定类的图像时,我都会尝试调用一个函数。关键是在带有标题等的较大图像的幻灯片下方生成一个轮播缩略图画廊。

我尝试同时使用 on.('changed' .. ) 和 on.('load' .. ) 都无济于事,我尝试将事件绑定到 dom 中的更改。我尝试了所有解决方案中最简单的一种,仅使用切换幻灯片图像的按钮上的单击功能。我最终得到的唯一结果是旧的 src 属性,所以我的轮播总是比画廊落后一步。

当图像有新的 src 时如何调用函数?

更新我迄今为止尝试调用该函数的方法:

jQuery('.nivo-main-image').on('load', function() {
    makegallery();
});

jQuery('.nivo-main-image').load( function() {
    makegallery();    
});

jQuery('.nivo-main-image').attr('src' function() {
    makegallery();    
});

jQuery('#container').change(function(){ makegallery(); }); // 包含的 div

【问题讨论】:

  • 没有任何代码很难提供帮助。 jsFiddle 总是很理想的。
  • 图像不只是自己获得一个新的 src。你不能在你改变它的地方调用你的函数吗?
  • 您需要发布您的 HTML 和 Javascript,以便任何人都能够帮助您。
  • 为什么不像:$('yourimageselector').attr('src', 'newsrc').load(function(){
  • astex - 我已经用我尝试用来调用该函数的示例更新了我的问题。该图像有一类 nivo-main-image GolezTrol - 我可以,这是一个有效的观点,我正在寻找快速修复,因为我正在将此画廊附加到第三方幻灯片,我希望不必修改他们的代码。因此,只需监听幻灯片更新的事件。 tymeJV - 如上所述,更改幻灯片中图像的功能是由第三方完成的,我宁愿不更改他们的代码。

标签: jquery


【解决方案1】:

你可以只使用加载事件。

http://jsfiddle.net/EkYpY/1/

$("img").on("load", function () {
    alert('loaded');
});
setTimeout(function () {
    $("img").attr("src", "http://images2.fanpop.com/images/photos/5700000/Random-random-5719763-1280-800.jpg");

}, 3000);

这里的图片以一个 src 开头。然后当它改变事件时触发。

【讨论】:

  • 谢谢,但是这段代码不起作用,什么时候调用setTimeout?
  • settimeout 只是用来更改图像的 src。向您显示加载事件正在触发。您如何更改代码中的 src?
  • 问题是当 src 改变时 load 事件没有被触发。 src 由 nivo 滑块插件更改,所以我不完全确定说实话。但是,我确实在加载下一个滑块图像后调用的插件中找到了一个函数,因此我将函数调用插入其中并解决了它。但是,没有回答如何从图像 src 更改中触发事件的问题,也许这是不可能的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-07
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 2012-09-10
相关资源
最近更新 更多