通过jQuery创建等于DOM元素“draggable”状态的JavaScript变量的最有效方法是什么?
我尝试了以下内容:
$(document).ready(function() {
$('#editButton').click(function() {
var isDraggable = $('.tile').draggable('option', 'disabled');
if(isDraggable == "true")
{
$(function() {
$('.tile').draggable({
containment: '#content',
scroll: false
});
$('.tile').resizable({
maxHeight: 200,
maxWidth: 200,
minHeight: 100,
minWidth: 100
});
})
}
})
});
我没有得到任何语法错误或任何内容,但功能不存在。
以下是随附的HTML:
<div id="content">
<div id="navBar">
<input type="button" id="editButton" value="Edit" />
</div>
<ul>
<li>
<div id ="google" class="tile">
<img src="images/tiles/google/google.png" class="tile_image" width="27" height="41" />
<p>Google</p>
</div>
</li>
<li>
<div id="yahoo" class="tile">
<p>Yahoo</p>
</div>
</li>
<li>
<div id="thelockpeople" class="tile">
<p>The Lock People</p>
</div>
</li>
<li>
<div id="amazon" class="tile">
<p>Amazon</p>
</div>
</li>
<li>
<div id="masterlock" class="tile">
<p>Masterlock</p>
</div>
</li>
<li>
<div id="hpionline" class="tile">
<p>Hpionline</p>
</div>
</li>
<li>
<div id="youtube" class="tile">
<p>YouTube</p>
</div>
</li>
<li>
<div id="kitco" class="tile">
<p>Kitco</p>
</div>
</li>
<li>
<div id="usatoday" class="tile">
<p>USA Today</p>
</div>
</li>
<li>
<div id="gamefly" class="tile">
<p>GameFly</p>
</div>
</li>
</ul>
</div>
我做错了什么?
答案 0 :(得分:4)
要使其正常工作,只需替换以下行:
if(isDraggable == "true")
使用:
if (isDraggable)
原因是isDraggable
是一个对象,如果它存在(即“.title”div上的“draggable”方法工作)那么它将是真的(存在且非零),但是它不等于1
,这是true
的数值,因此您的原始测试失败,您永远不会调用该函数。