2017-02-01 1 views
0

現在、私はjQueryの画像の周りにリンクを追加しようとしています。これは、これまでのところ、現在のコードです:img jqueryへのリンクを追加しています

showPins: function(options) { 

     var options = $.extend(defaults, options); 

     this.css({'cursor' : options.cursor, 'background-color' : options.backgroundColor , 'background-image' : "url('"+options.backgroundImage+"')",'height' : options.fixedHeight , 'width' : options.fixedWidth}); 

     for(var i=0; i < (options.pinDataSet).markers.length; i++) 
     { 
      var dataPin = options.pinDataSet.markers[i]; 

      var imgC = $('<img rel="/map-content.php?id='+dataPin.id+'" class="pin '+options.pinclass+'" style="top:'+dataPin.ycoord+'px;left:'+dataPin.xcoord+'px;">'); 
      imgC.attr('src', options.pin); 
      imgC.attr('title', dataPin.title); 

      var a = $('<a>', {href:options.pinurl}).appendTo(imgC); 

      imgC.appendTo(this); 
     } 
    } 

代わりに私は、タグの周りのhrefをラップするかどうかはわかりません。この

this

を受けています。代わりに、imgタグがhrefを囲んでいます。

+1

jQueryラップします。 http://api.jquery.com/wrap/ –

答えて

0

コード内の要素を切り替えるだけで済みます。 $(element).appendTo(element2)element2の内側にelementを追加します。、あなたのケースでは、問題は

var a = $('<a>', {href:options.pinurl}).appendTo(imgC); 

var a = $('<a>', {href:options.pinurl}); 
imgC.appendTo(a); 

でなければならないことであるように、この情報がお役に立てば幸い!

+0

完璧、ありがとう! – justarandomer

0

.appendToの代わりに.appendを使用してください。 http://api.jquery.com/append/から

.append()と.appendTo()メソッドは、同じタスクを実行します。大文字の の違いは、具体的にはコンテンツとターゲットの の配置にあります。 .append()を使用すると、 の前のセレクタ式が、コンテンツが挿入されるコンテナになります。一方、 .appendTo()を使用すると、内容はセレクタ式またはその場で作成されたマークアップのいずれかのメソッド に先行し、 がターゲットコンテナに挿入されます。

関連する問題