2012-07-12 32 views
-4

我需要帮助。如何在下面的代码中添加指向图片的链接。这是一个脚本,允许访问者点击表单下拉菜单中的选项,并且每个选项都会更改呈现的图像。我正在尝试为每个图片添加一个链接,以允许访问者将鼠标悬停在图片上方,并打开更大的图片。如何在此javascript中添加图像链接?

我只需要知道在哪里添加链接。每当我将其添加到var sel_imgs = [,它会禁用访问者在下拉菜单中选择一个选项时更改图像的功能。

function diva_imgBySel(objId,theValue) { //v0.1 divaHTML.com 

    var sel_imgs=["images/md01.jpeg","images/md01.jpeg","images/md02.jpeg","images/md03.jpeg","images/md04.jpeg","images/md06.jpeg","images/md05.jpeg","images/pic07.jpeg","images/pic08.jpeg"]; 

    var d=document; 
    theValue=sel_imgs[theValue]; 
    if (!theValue || !d.getElementById) return; 
    var obj = d.getElementById(objId); 
    if (obj) obj.src=theValue;  
} 
function MM_preloadImages() { //v3.0 
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); 
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) 
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} 
} 
</script> 

这里是低了下去页面上的表单代码:

<img src="images/md01.jpeg" alt="" name="theImg" width="147" height="161" id="theImg" style="border: 1px solid #ffffff;" align="LEFT" /><strong>Add a vase:</strong> 
<input type="checkbox" name="anniv" id="anniv" value="6.95" onclick="priceUpdate('anniv');"/> 
      &pound;6.95 
      </td> 
      <td width="71%" align="left" valign="top"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td align="left"></br>&nbsp;&nbsp;&nbsp;&nbsp;<select name="productColors" id="productColors" style="width:270px; margin-bottom:5px; margin-top:5px" onchange="diva_imgBySel('theImg',this.selectedIndex)"> 
       <option value="MD1004">Select Flower Arrangement</option> 
       <option value="MD1004">Bloom</option> 
       <option value="MD1001">Majestic</option> 
       <option value="MD1007">Mothers Day Premium</option> 
       <option value="MD1002">Mum's the Word</option> 
       <option value="NF1011">Joyful Orchids</option> 
       <option value="NF1010">Lily and Rose Hand Tied</option> 
       <option value="NF1013">Sunflower Sensation</option> 
       <option value="SF002-free-vase">Tranquililty</option> 
       </select></td> 

这里是安装在鼠标悬停效果的节点。它可以很好地工作,但对用户做出的每个选择重复相同的大图像。我需要知道如何为每个图像复制这种效果,而不仅仅是“md01.jpeg”。

<a href="#" rel="imgtip[1]"><img src="images/md01.jpeg" alt="" name="theImg" width="147" height="161" id="theImg" style="border: 1px solid #ffffff;" align="LEFT" /><a/> 

<link rel="stylesheet" type="text/css" href="ddimgtooltip.css" /> 

<script type="text/javascript" src="ddimgtooltip.js"> 

/*********************************************** 
* Image w/ description tooltip v2.0- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com) 
* This notice MUST stay intact for legal use 
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more 
***********************************************/ 

</script> 

这里是图片鼠标悬停的代码。它是一个.js文件

/* Image w/ description tooltip v2.0 
* Created: April 23rd, 2010. This notice must stay intact for usage 
* Author: Dynamic Drive at http://www.dynamicdrive.com/ 
* Visit http://www.dynamicdrive.com/ for full source code 
*/ 


var ddimgtooltip={ 

    tiparray:function(){ 
     var tooltips=[] 
     //define each tooltip below: tooltip[inc]=['path_to_image', 'optional desc', optional_CSS_object] 
     //For desc parameter, backslash any special characters inside your text such as apotrophes ('). Example: "I\'m the king of the world" 
     //For CSS object, follow the syntax: {property1:"cssvalue1", property2:"cssvalue2", etc} 

     tooltips[0]=["images/pic01.jpg"] 
     tooltips[1]=["images/pic02.jpg"] 
     tooltips[2]=["images/pic03.jpg"] 
     tooltips[3]=["images/pic04.jpeg"] 
     tooltips[4]=["images/pic05.jpeg"] 
     tooltips[5]=["images/pic06.jpeg"] 

     return tooltips //do not remove/change this line 
    }(), 

    tooltipoffsets: [20, -30], //additional x and y offset from mouse cursor for tooltips 

    //***** NO NEED TO EDIT BEYOND HERE 

    tipprefix: 'imgtip', //tooltip ID prefixes 

    createtip:function($, tipid, tipinfo){ 
     if ($('#'+tipid).length==0){ //if this tooltip doesn't exist yet 
      return $('<div id="' + tipid + '" class="ddimgtooltip" />').html(
       '<div style="text-align:center"><img src="' + tipinfo[0] + '" /></div>' 
       + ((tipinfo[1])? '<div style="text-align:left; margin-top:5px">'+tipinfo[1]+'</div>' : '') 
       ) 
      .css(tipinfo[2] || {}) 
      .appendTo(document.body) 
     } 
     return null 
    }, 

    positiontooltip:function($, $tooltip, e){ 
     var x=e.pageX+this.tooltipoffsets[0], y=e.pageY+this.tooltipoffsets[1] 
     var tipw=$tooltip.outerWidth(), tiph=$tooltip.outerHeight(), 
     x=(x+tipw>$(document).scrollLeft()+$(window).width())? x-tipw-(ddimgtooltip.tooltipoffsets[0]*2) : x 
     y=(y+tiph>$(document).scrollTop()+$(window).height())? $(document).scrollTop()+$(window).height()-tiph-10 : y 
     $tooltip.css({left:x, top:y}) 
    }, 

    showbox:function($, $tooltip, e){ 
     $tooltip.show() 
     this.positiontooltip($, $tooltip, e) 
    }, 

    hidebox:function($, $tooltip){ 
     $tooltip.hide() 
    }, 


    init:function(targetselector){ 
     jQuery(document).ready(function($){ 
      var tiparray=ddimgtooltip.tiparray 
      var $targets=$(targetselector) 
      if ($targets.length==0) 
       return 
      var tipids=[] 
      $targets.each(function(){ 
       var $target=$(this) 
       $target.attr('rel').match(/\[(\d+)\]/) //match d of attribute rel="imgtip[d]" 
       var tipsuffix=parseInt(RegExp.$1) //get d as integer 
       var tipid=this._tipid=ddimgtooltip.tipprefix+tipsuffix //construct this tip's ID value and remember it 
       var $tooltip=ddimgtooltip.createtip($, tipid, tiparray[tipsuffix]) 
       $target.mouseenter(function(e){ 
        var $tooltip=$("#"+this._tipid) 
        ddimgtooltip.showbox($, $tooltip, e) 
       }) 
       $target.mouseleave(function(e){ 
        var $tooltip=$("#"+this._tipid) 
        ddimgtooltip.hidebox($, $tooltip) 
       }) 
       $target.mousemove(function(e){ 
        var $tooltip=$("#"+this._tipid) 
        ddimgtooltip.positiontooltip($, $tooltip, e) 
       }) 
       if ($tooltip){ //add mouseenter to this tooltip (only if event hasn't already been added) 
        $tooltip.mouseenter(function(){ 
         ddimgtooltip.hidebox($, $(this)) 
        }) 
       } 
      }) 

     }) //end dom ready 
    } 
} 

//ddimgtooltip.init("targetElementSelector") 
ddimgtooltip.init("*[rel^=imgtip]") 
+1

尝试抛开Dreamweaver,它会让你的代码变得不可能很复杂。找一个好的IDE或文本编辑器,其中许多是免费的。它会让你成为更好的开发者。如果你在windows上,请试试[notepad ++](http://notepad-plus-plus.org/download/v6.1.5.html) – Ibu 2012-07-12 16:51:25

+0

@Ibu Dreamweaver是一款适用于多种语言的好IDE(php,coldfusion,javascript等)并且可能是CSS/HTML最好的产品......你应该澄清一下:“当作为WYSIWYG编辑器使用时,Dreamweaver使你的代码变得非常复杂** ...并且它的预建代码块可以是一个但它在代码突出显示方面做得很好,显示html/css包括'include()'ed文件(shtml,php等),参数建议(js,php等)和语法错误警告当你依赖它来为你的代码写作时,问题会突然出现 – 2012-07-12 17:14:36

回答

0

此代码示例实际上并不是指您想要关注的标记。你在这里得到的是逻辑和表单元素将改变标识为'theImg'的img标签的src。你需要看的是带有'theImg'ID的元素,并在那里添加一个侦听器来触发你想要的任何大的图像效果。

+0

嗨,Brian,那正是我想说的!!对不起,我是一个新手,我该怎么做呢?如何在'theImg'id元素中添加链接。每个图片的链接。非常感谢您的帮助。 – Lawrence 2012-07-12 17:29:51

+0

我们可能需要s多一点代码,以帮助。具体来说,我们需要看到图像节点。在代码中查找'id =“theImg”'的行,并在原始问题中添加完整节点的代码。 – 2012-07-12 17:49:36

+0

噢,好的。我在表单上找到了一条线,我认为它有图像节点。谢谢。让我知道是否需要粘贴更多的代码。 – Lawrence 2012-07-12 18:14:44

0
<option value="MD1001"><a href="your_link"><img src="your_image_path"/></a>Your non-Link Text</option> 

这就是我如何布置它。我不确定你的要求是什么。但是这会在那里形成一个图像。用您的数据替换“your_link”,“your_image_path”。

+0

谢谢。我之前尝试过,但是因为表单自己调用了我首先在这里显示的函数脚本中的图像,所以忽略了放在表单中的图像。 – Lawrence 2012-07-12 17:26:48

相关问题