0

Drag 在第一个分区中正常工作,但在下一个分区中不能正常工作。我需要在不更改 div Id/Class 名称的情况下让它工作。

小提琴在这里:JS Fiddle

HTML:

<div class="track">
    <div id="rocket">    
    </div>
</div>
<br><br><div style="clear:both">
<div class="track">
    <div id="rocket">    
    </div>
</div>

​

CSS:

.track {
    height: 400px;
    width: 48px;
    overflow: hidden;
    margin: 10px 0 0 10px;
    float:left;
    background: #ccc;
}
#rocket{
    height:48px;
    width:48px;
    background: url('http://cdn1.iconfinder.com/data/icons/Symbolicons_Transportation/48/Rocket.png');
    position:relative;
    top:352px;
}
​

查询:

$(document).ready(function() {
    $('.track').each(function(){


    //rocket drag
    $(this).children("#rocket").draggable({
        containment: ".track",
        axis: "y",
        scroll: false,
        start: function(event, ui) {
            draggingRocket = true;
        },
        drag: function(event, ui) {
            // Show the current dragged position of image


        },
        stop: function(event, ui) {
            draggingRocket = false;
        }
    });
    });
});​
4

3 回答 3

1

这是小提琴...

http://jsfiddle.net/zHyA9/30/

1) id 应该始终是唯一的...因此将您的 id 更改为 class..
2) 添加 containment: $(this),到您的可拖动类中

于 2012-11-08T11:06:18.383 回答
0

您需要在 html 代码中更改一些内容。

<div class="track">
<div id="rocket">    
</div>
</div>
<div style="clear:both">
<div class="track">
<div id="rocket">    
</div>
</div>

这里的小提琴:小提琴

于 2012-11-08T11:03:25.203 回答
0

您需要对html代码进行一些更改js

参考这个小提琴

JS: $(document).ready(function() { $('.track').live("hover",function(){

//rocket drag
$(this).children(".rocket").draggable({
    containment: this,
    axis: "y",
    scroll: false,
    start: function(event, ui) {
        draggingRocket = true;
    },
    drag: function(event, ui) {
        // Show the current dragged position of image


    },
    stop: function(event, ui) {
        draggingRocket = false;
    }
});
});

});​</p>

于 2012-11-08T11:07:51.060 回答