1

我有下一个用户控制:

<div class="page" >
     <div class="box cf">
    <div class="left">
       <span class="demowrap">
                <asp:Image ID="imgIdCard" class="imgClass" runat ="server" />
            </span>            
            <input type="button" value="Resize"  onclick="Zoom()" />
    </div>
      </div>
    <div id="dialogImage">
        <img id="imageDialog"/>
    </div>          
</div>

当我单击按钮 value="Resize" 时,我想将 ImageUrl 值从 ID="imgIdCard" 传递给 src 值 img id="imageDialog"。

我在下面的代码中做了下一个,但它不起作用:

function Zoom(){
    var img = $(this).parent().select(".imgClass");
    $("#imageDialog").attr('src', img.attr('src'));
}
4

2 回答 2

0

关键字this不可用zoom。使用 this 传递当前对象,也使用 find 而不是 select。您可以使用最接近的而不是父级来查找图像对象的共同祖先和左键单击的按钮class

html

<input type="button" value="Resize"  onclick="Zoom(this)" />

Javascript

function Zoom(imgObj){
    var img = $(imgObj).closest('.left').find(".imgClass");
    $("#imageDialog").attr('src', img.attr('src'));
}

您可以为您的图像按钮和bind事件分配一些 id,jQuery然后这将在处理程序中可用。

html

<input id="mybutton" type="button" value="Resize" />

Javascript

$('#mybutton').click(function (){
    var img = $(this).closest('.left').find(".imgClass");
    $("#imageDialog").attr('src', img.attr('src'));
});
于 2013-08-29T17:27:55.643 回答
0

你非常亲近。替换selectfind

var img = elem.parent().find(".imgClass");

$(this).parent()将为您提供班级的跨度,demowrap.find('class')为您提供指定班级的孩子。

哦,是的,也像这样将元素传递给函数 Zoomonclick="Zoom(this)" 并使用函数 Zoom(elem) {}

function Zoom(elem){
    var img = elem.parent().find(".imgClass");
    $("#imageDialog").attr('src', img.attr('src'));
}
于 2013-08-29T17:34:22.423 回答