Проверка, является ли элемент DOM перетаскиваемым, и установка равной переменной JavaScript? - PullRequest
4 голосов
/ 22 января 2011

Каков наиболее эффективный способ создания переменной JavaScript, равной «перетаскиваемому» состоянию элемента DOM через jQuery?

Я пробовал следующее:

$(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 Ответ

4 голосов
/ 22 января 2011

Чтобы все заработало, просто замените строку:

if(isDraggable == "true")

с:

if (isDraggable)

Причина в том, что isDraggable является объектом, если он существует (т. Е. Работает метод "draggable" в div ".title"), то он будет истинным (существует и не равен нулю), но он будет не должен быть равен 1, который является числовым значением для true, поэтому ваш первоначальный тест не пройден, и вы никогда не вызовете функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...