0

我正在尝试测试动态 php 照片库中的属性,该照片库将图像从文件夹加载到图库中。画廊使用灯箱显示单击后的照片。这是我用来测试的:

if( $('#lightboxImage').attr('src') !== 'undefined'){ do something here }

我认为在调试中出现初始错误(无法调用 null 的方法“attr”),因为当单击图库中的图像时,#lightboxImage 只有一个“src”属性。页面第一次加载时,没有任何明显的点击。

关于如何解决这个问题的任何想法?

谢谢

4

2 回答 2

1

我和@Malvolio 在一起,你的错误并没有完全加起来。你不应该得到你描述的错误。以机智:

<img id="src" class="src" src="http://goo.gl/UohAz"><br/>
<img class="src" src=""><br/>
<img class="src">

console.log($('#nothing').attr('src'));
console.log($('#src').attr('src'));

http://jsfiddle.net/7ZGwe/

跑步onload给了我:

undefined
http://goo.gl/UohAz

因此,正如 Malvolio 所建议的那样,您的实际问题与其他问题有关。我不一定能推测出比 Malvolio 所拥有的更好,除非可能jQuery()应该尝试代替$().


这有点超出您的潜在问题,但与您的要求有关。您可以:

[src]:not([src=""])

http://jsfiddle.net/jSQ3P/3

在您的选择器中并绕过检查。换句话说:

$('#lightboxImage[src]:not([src=""])').doStuff();
于 2012-07-29T22:56:09.840 回答
0

为什么不将代码附加到需要引发此代码的元素的单击事件,以便仅在需要时调用它?

$(document).ready(function() {
    $("#clickable").click(function() {
        if( $('#lightboxImage').attr('src') !== 'undefined'){
            // do something here 
        }
    });

});
于 2012-07-29T22:45:23.893 回答