检查DOM元素是否可拖动并且设置是否等于JavaScript变量?

时间:2011-01-21 23:36:56

标签: javascript jquery button

通过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>

我做错了什么?

1 个答案:

答案 0 :(得分:4)

要使其正常工作,只需替换以下行:

if(isDraggable == "true")

使用:

if (isDraggable)

原因是isDraggable是一个对象,如果它存在(即“.title”div上的“draggable”方法工作)那么它将是真的(存在且非零),但是它不等于1,这是true的数值,因此您的原始测试失败,您永远不会调用该函数。