Отключить кнопки в jQuery Mobile - PullRequest
63 голосов
/ 04 мая 2011

Это для jQuery Mobile. Не все обычные ответы JQuery будут работать.

Мне не удается отключить кнопки в jQuery Mobile.

jQuery Mobile говорит использовать

$('input').button('disable');   

Но я получаю сообщение об ошибке в Firebug:

необработанное исключение: невозможно вызвать методы для кнопки до инициализации; попытался вызвать метод 'disable'.

Он находится в разделе готовых документов на моей странице, поэтому я не знаю, как он еще не инициализирован.

Я пытался вызвать кнопку напрямую по ее идентификатору, но это не сработало.

Я пробовал:

$('button').attr("disabled", "disabled");

Не работает.

У меня также есть команда switch, которая активирует одну кнопку в зависимости от значения. У меня есть эта часть, где она направляется в правильные операторы "case", но кнопки включения / выключения в jQuery mobile не работают.

код: http://pastebin.com/HGSbpAHQ

Ответы [ 12 ]

0 голосов
/ 21 декабря 2011

Вы получаете эту ошибку, вероятно, потому что элемент еще не находится в DOM. $ (Документ) .ready (); не будет работать. Попробуйте добавить свой код в обработчик событий pageinit.

Вот рабочий пример:

<!DOCTYPE html> 
<html> 
<head>
    <title>Button Disable</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
</head> 
<body>
    <div id="MyPageId" data-role="page">
        <div data-role="header">
            <h1>Button Disable</h1>
        </div>
        <div data-role="content">
            <button id="button1" type="button" onclick="javascript:alert('#button1 clicked');">Button 1</button>
            <button id="button2" type="button" onclick="javascript:alert('#button2 clicked');">Button 2</button>
        </div>
        <div data-role="footer">
            <p>footer</p>
        </div>
    </div>
    <script type="text/javascript">//<![CDATA[
        $('#MyPageId').bind("pageinit", function (event, data) {
            $("#button1").button("disable");
        });
    //]]></script>
</body>
</html>

Надеюсь, что кому-то поможет

0 голосов
/ 10 июня 2011

Для кнопки ссылки

Вызов метода .button('enable') дает только эффект, но функционально - нет.

Но у меня есть хитрость.Мы могли бы использовать атрибут HTML5 data-, чтобы сохранить / поменять значение href и onclick.

, см .:

http://jsbin.com/ukewu3/74/

режим исходного кода:

http://jsbin.com/ukewu3/74/edit

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