2012-03-07 76 views
1

我有一个JQuery轮播,我已经适应了我的需要。我需要将列表项从我的轮播拖放到可放置区域。 这个效果很好,但是如果我放下一个物品然后旋转转盘,放下的物品也会旋转。JQuery:项目被丢弃时无法关闭可拖动

为了解决这个问题,我尝试添加一个类到列表项中,因为JQuery会认为'id'是唯一的。我也有加入

$('#carousel-ul li').draggable({disable: true}); 

我希望这将停止下降项被拖动,代码仍然执行确定,但被丢弃的项目仍与旋转木马幻灯片。

我也曾尝试

$('#carousel-ul .image-item').draggable('option', 'cancel', ''); 
$('#carousel-ul .image-item').draggable(false); 

希望有人能帮助,下面是我的代码,在此先感谢!

$('#carousel-ul > .image-item').draggable(); 

    $('#drop-target').droppable({ 

     helper: clone, 
     hoverClass: 'drophover', 
     tolerance: 'fit', 
     accept: '#carousel-ul > .image-item', 
     drop: function(event, ui) { 

      var name = draggable.attr("id").val(); 
      $('#carousel-ul > .image-item').appendTo(this); 
      $('#carousel-ul .image-item').draggable('option', 'cancel', ''); 
      $.post("Javacript_Controller.php", { name: name},function(data){ 

       $('#drop-content').html(data); 

      }); 
     } 
    });   

HTML

<div id='carousel-inner'> 
<ul id='carousel-ul'> 
    <?php if(isset($_POST['option'])){ 
    foreach($imageResult as $value) { 
     $image_path = "./imagesdb/images/" .$_SESSION['user_id']; 
     $mainImage = $image_path . '/' . $value; 
     $thumbImage = $image_path . "t/" . $value; 
     echo '<li class="ui-corner-tr image-item"><div id="image-item"><img src="'.$thumbImage.'" id="'.$thumbImage.'"alt="wardrobe-item"/></div>'; 

      } 
    } 
?> 

</ul> 
<div id="drop-container"> 
    <div id="drop-target"> 
    </div> 
    <div id="drop-content"> 
     </div> 
</div> 



       </div> 

回答

1

要禁用拖动后,它已被初始化,您需要使用的选项设置器,

$('#carousel-ul .image-item').draggable('option', 'disabled', true); 

Documentation

+0

谢谢你的解释安德鲁! – Alan 2012-03-07 21:15:20