我正在研究 jQuery 可拖动取消选项,但我没有得到任何示例来理解“取消选项”。
我可以举个例子吗?
从jQuery UI 文档 cancel
选项...
... 防止从指定元素开始拖动。
让我们看看下面的例子。
HTML:
<div class="selector">This can be dragged</div>
<span class="selector">This can be dragged</span>
<input type="button" value="This can be dragged" class="selector" />
<button class="selector">This can't be dragged</button>
JavaScript:
$(".selector").draggable({
cancel: "button"
});
这里button
元素有selector
类,应该像其他具有相同类的元素一样拖动。但是,cancel
为 all 设置了选项button
,因此所有button
具有类的元素selector
都被排除在可拖动列表之外并且不能被拖动。
演示:http: //jsfiddle.net/uPRaH/
在下一个示例中,我们有许多可以拖动li
的类元素。selector
<ul>
<li class="selector">This can be dragged</li>
<li class="selector">This can be dragged</li>
<li class="selector not-this">This can't be dragged</li>
<li class="selector">This can be dragged</li>
<li class="selector">This can be dragged</li>
<li class="selector">This can be dragged</li>
<li class="selector">This can be dragged</li>
</ul>
not-this
让我们从可拖动列表中排除具有类的第三个元素。cancel
使用选项也很容易:
$(".selector").draggable({
cancel: ".not-this"
});
演示:http: //jsfiddle.net/uPRaH/1/
在第三个示例中,我们可以看到cancel
option 如何防止嵌套元素拖动。
对于以下标记...
<div class="selector">
Draggable
<div>Draggable</div>
<span>Not draggable</span>
<div>Draggable</div>
Draggable
</div>
...让我们可以selector
通过任何手柄拖动,除了span
:
$(".selector").draggable({
cancel: "span"
});
演示:http: //jsfiddle.net/uPRaH/2/
这个示例程序可以帮助你。要对此进行测试,请将列表项拖放到 textarea 中。您可以了解其功能。
<html>
<head>
<style type="text/css">
#divFields
{
margin-right: 2em;
}
#txtMessageFields
{
margin: 0;
padding: 1em 0 1em 3em;
font-weight:bold;
font-size:18px;
}
</style>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>
<script type="text/javascript">
$(document).ready(initialize);
function initialize()
{
$("#divFields li").draggable
({
helper: "clone",
cancel:"li#iComputer"
});
$("#divDroppedFields").droppable
({
accept: "#divFields li",
drop: function (event, ui)
{
$(this).find('#txtMessageFields').append((ui.draggable.attr('data-value')));
}
});
}
</script>
</head>
<body>
<div id="divFields">
<ul>
<li data-value="iPhone">iPhone</li>
<li data-value="iPod">iPod</li>
<li data-value="iComputer" id="iComputer">iComputer</li>
</ul>
</div>
<div id="divDroppedFields" class="ui-widget-content">
<textarea id="txtMessageFields" cols="50" rows="10"></textarea>
</div>
</body>
</html>