更改图像的自定义属性的值

时间:2014-04-23 21:57:15

标签: javascript jquery

我有一个带有两个缩略图图像的文档(正面和背面,如银行支票)。我可以通过在缩放中显示原始(大)图像的正面图像的一部分来放大正面缩略图图像。到目前为止一切都有效。 单击正面图像,将其与后部交换,我应该能够显示后部的变焦。但是,这不起作用。我相信应该修改zoomingRear()属性并为自定义属性提供值,或者zooming()需要以某种方式刷新以显示另一个图像。有什么想法吗?

我的图片来自会话来源:

<img style="border:1px solid #e8e8e6;" id="zoom_mw" onclick="this.src = this.src == rear() 
? front() : rear();" src='<%= Session("ImageThumbnailPathFront")%>' 
data-zoom-image='<%= Session("ImagePathFront")%>' width="500" height="250"  />

JQuery的

<script type="text/javascript">
    function pageLoad(sender, args)
    {
     zooming()
    }
    function front() {    

        return onImg = '<%= Session("ImageThumbnailPathFront")%>'; 

    }
    function rear() {    

        return offImg = '<%= Session("ImageThumbnailPathRear")%>'; 
        zoomingRear()
     }
    function zooming() {   

        $(document).ready(function () {
            $("#zoom_mw").elevateZoom({ scrollZoom: true });
        });
    }
    function zoomingRear() {    // <-- Problematic function

        $(document).ready(function () {
            document.querySelector(data-zoom-image='<%= Session("ImagePathRear")%>').elevateZoom({ scrollZoom: true });
           // document.getElementById(
        });
    }
    function getElementByAttribute(attr, value, root) {
        root = root || document.body;
        if(root.hasAttribute(attr) && root.getAttribute(attr) == value) {
            return root;
        }
        var children = root.children, 
            element;
        for(var i = children.length; i--; ) {
            element = getElementByAttribute(attr, value, children[i]);
            if(element) {
                return element;
            }
        }
        return null;
    }

</script>

1 个答案:

答案 0 :(得分:0)

你从你的onclick调用了zoomingRear(),但是在你的页面被加载之后就这样了,所以在zoomingRear()中使用$(document).ready()是没有意义的。只是尝试删除它并保留代码:

function zoomingRear() { 
    document.querySelector(data-zoom-image='<%= Session("ImagePathRear")%>').elevateZoom({ scrollZoom: true });
}