1

設定のある画像のセットがありdraggable=trueます。これらの画像は、ドラッグしてからGoogleマップビューにドロップし、ドロップ位置にマーカーを作成することを目的としています。地図上で画像が重複しないように、ドラッグ可能な設定を無効にして不透明度を変更したいと思います。

私の地図のドロップ可能ハンドラーと写真ドラッグ可能ハンドラーは

$("#photo"+i).draggable({
  helper: "clone",
  cursor: "move",
  containment:  'body',
  start: function(e){
    $(this).addClass("fade");
    currentPhoto = $(this);   
  }
});

$("#map").droppable({
  drop: function(e){
    var point = new google.maps.Point(e.pageX, e.pageY);
    var data = {
      "location": overlay.getProjection().fromDivPixelToLatLng(point),
      "photo": currentPhoto
    }

    makeMarkers(data.location, $(data.photo).attr("src"), $(data.photo).attr('id'));
  }
});

内部makeMarkersでは、type値は、データベース検索値からページの読み込み時にマーカーが作成されているのか、ドラッグされている写真画像のIDとして作成されているのかを判断するために使用されます。

function makeMarkers(location, title, type){
   //variable and marker initialization here    

  if (type == "onload")
    newMarker.setIcon(savedLocation);
  else {
    newMarker.setIcon(unsavedLocation);
    $("img."+type).attr("draggable", "false");
    $("img."+type).attr("opacity", "0.5");
    console.log("Disabling draggability of " +type);
  }

   //marker event handlers here
}

画像をドラッグアンドドロップすると、その場所に新しいマーカーが作成されます。ただし、画像のプロパティは変更されていません。どうすれば能力を有効にできますか

4

1 に答える 1

3

の代わりに.removeAttr()を使用する必要があり.attr()ます。

このコードはトリックを行う必要があります:

function makeMarkers(location, title, type){
   //variable and marker initialization here    

  if (type == "onload")
    newMarker.setIcon(savedLocation);
  else {
    newMarker.setIcon(unsavedLocation);
    $("img."+type).removeAttr("draggable");
    $("img."+type).attr("opacity", "0.5");
    console.log("Disabling draggability of " +type);
  }

   //marker event handlers here
}
于 2012-08-07T20:49:07.133 に答える