2017-02-01 3 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); 
     } 
    } 

Вместо этого я получаю эту

this

я не уверен, как обернуть вокруг HREF тега. Вместо этого тег img обтекает href.

+1

jQuery упаковка сделаю. http://api.jquery.com/wrap/ –

ответ

0

Вам просто нужно включить элементы в свой код. $(element).appendTo(element2) присоединяет element к внутренней element2., Так что в вашем случае, проблема заключается в том, что

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

должен быть

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

Надеется, что это помогает!

+0

Отлично, спасибо! – justarandomer

0

Просто используйте .append вместо .appendTo.

От http://api.jquery.com/append/:

.append() и .appendTo() методы выполняют ту же задачу. Основное отличие заключается в синтаксисе, в частности, при размещении содержимого и цели . С помощью .append() выражение селектора, предшествующее , является контейнером, в который вставлен контент. С другой стороны, с .appendTo() содержимое предшествует методу либо как выражение выбора, либо как разметка, созданная «на лету», а вставляется в целевой контейнер.

Смежные вопросы