Javascript 单击元素后取消jQuery.load()事件

Javascript 单击元素后取消jQuery.load()事件,javascript,jquery,Javascript,Jquery,在缩放低分辨率图像时,我正在加载一个新的高分辨率图像,其类别为.streamdimage。每当我开始加载.streamdimage时,我都会将低分辨率.previousImage放在.streamdimage上方的占位符中。这是为了始终有一个可见的图像,并且每当高分辨率完成加载时,.previousImage将被删除,高分辨率将可见 Javascript jQuery('.streamedImage'+imgNum).load(function() { jQuery('.previou

在缩放低分辨率图像时,我正在加载一个新的高分辨率图像,其类别为
.streamdimage
。每当我开始加载
.streamdimage
时,我都会将低分辨率
.previousImage
放在
.streamdimage
上方的占位符中。这是为了始终有一个可见的图像,并且每当高分辨率完成加载时,
.previousImage
将被删除,高分辨率将可见

Javascript

jQuery('.streamedImage'+imgNum).load(function() {
     jQuery('.previousImage').remove();
     jQuery('.loadingDiv').remove();
     console.log('loaded');
});
HTML

<img id="dialogPreviousImage1" class="previousImage cursorDrag" processid="372014134361312" 
     src="dialogImageStreamer.php?doc=Vortex/inProc/1438/372014134361312/imageLarge12.jpg&userName=jcAdmin&processId=372014134361312&mode=hires&x0=0&y0=0&x1=599.017&y1=791.633&resol=5.7">
<img id="dialogImage1" class="streamedImage1 cursorDrag" processid="372014134361312" 
     src="dialogImageStreamer.php?doc=Vortex/inProc/1438/372014134361312/imageLarge12.jpg&userName=jcAdmin&processId=372014134361312&mode=hires&x0=0&y0=0&x1=599.017&y1=791.633&resol=8.7">`
解决方案:

jQuery('.streamedImage'+imgNum).on('load', function(){
   jQuery('.previousImage').remove();
   jQuery('.loadingDiv').remove();
})
伙计们,谢谢你们的帮助,没有它我是不会来这里的

每当在我的GUI中选择另一个工具时,我都会运行一个名为
softproof.disableZoom()
的js函数。在这个函数中,我运行了
.unbind()在图像上。这反过来又阻止了我的挂起加载事件的触发


我需要明确地
.unbind('click');而不是
.unbind()`

第二次单击似乎会触发另一个加载事件,该事件会取消第一次

也许您可以在图像中添加一个属性,表示您正在加载过程中,如果您在后续事件中检测到该属性,请忽略单击?比如:

$('.previousImage').on('click', function(e) {

    if( $(this).data('loading') == true ) {
        return false;
    }

    $(this).data('loading', true);

    /* your loading logic */
});

是否有任何事件处理程序绑定到任何父元素?也许点击正在传播到一位家长,而这正是打断事情的原因。你可以通过使用


这将是一个很好的解决方案,但我必须允许在加载
.streamdimage
时单击
.previousImage
。我有一个密度计工具,当点击图像时,可以从选定的x,y坐标中检索颜色信息。因此,我希望允许用户仍然能够执行这些操作。我是否可以运行某种类型的观察程序,不断检查
.streamdimage
是否已加载?您是否可以使用我的代码停止第二次加载,并仍然执行其他逻辑?如果加载正在发生,则不要返回false,而是将逻辑封装在if中,并检查加载是否为false。是。每当用户选择颜色选择器时,都会对该图像应用.click,以便我可以绘制reading.AFAIK,单击不会停止挂起的加载事件触发,因此您应该检查绑定到加载的任何位置,并确保除非绝对必要,否则不会返回false。如果确实需要取消事件的默认行为,请使用event.preventDefault(),它仍然允许对同一事件执行不相关的处理程序。这就是我在没有看到更多代码的情况下所能提出的建议。好的,谢谢。我会处理这个问题,并在找到解决方案后回复。我感谢你们两位的帮助。在同一个元素上运行的解除绑定是否会阻止挂起的加载事件触发?每当我启用缩放工具时,我都会添加一个
。单击图像以执行缩放操作。无论何时禁用缩放工具,我都会运行一个
unbind()
;在图像上。用户激活缩放工具并在单击低分辨率img时请求hires图像。无论何时激活缩放工具,都会添加一个
.click()
,以执行缩放操作。每当激活“我的颜色选择器工具”时,我们都会在缩放工具的图像上运行
.unbind()
,并绑定一个新的
。在颜色选择器工具的图像上单击()。似乎是这种添加.click和.unbind的方法导致了我的问题。
$('.previousImage').on('click', function(e) {
    e.stopPropagation();
});