jQuery脚本不能用作例外

时间:2013-11-17 17:52:44

标签: javascript jquery image this window.location

我有一个jQuery脚本,应该在点击它们时打开全尺寸图片。

$('img').click( function() {
    var src = $(this).attr('src');
    window.location.href=src;
});

但是,单击图像时,它们无法按预期打开。有谁知道为什么?任何帮助表示赞赏:)

3 个答案:

答案 0 :(得分:1)

您的代码似乎在这里工作得很好:http://jsfiddle.net/jfriend00/n6n5R/

因此,您的事件处理程序可能已正确安装。以下是要检查的事项:

  1. 您是否在安装事件处理程序之前等待document加载?
  2. 您的图片是否已动态加载?
  3. 您是否有任何阻止事件处理程序运行的脚本错误?
  4. 对于第1项,我建议:

    $(document).ready(function() {
        $("img").click(function() {
            window.location.href = this.src;
        });
    });
    

    对于第2项,您可能希望使用委派事件处理:

    $(document).ready(function() {
        $(document).on("click", "img", function() {
            window.location.href = this.src;
        });
    });
    

    对于第3项,您需要检查浏览器错误控制台或调试控制台,看看哪些脚本错误可能导致脚本过早停止执行。


    P.S。您还可以注意到,我使用this.src而非$(this).attr("src")简化了您的代码。当jQuery只是越来越慢时,使用jQuery毫无意义。

答案 1 :(得分:0)

确保在脚本之前加载Jquery。如果图像是动态加载的,请使用以下脚本:

$('body').on('click','img', function() {
    var src = $(this).attr('src');
    window.location.href=src;
});

答案 2 :(得分:0)

您的图片是绝对路径名吗?如果没有,你想做这样的事情:

window.location.href = window.location.href.substr(0, window.location.href.lastIndexOf('/')) + src;