Проблема в настройке атрибута элемента HTML в jQuery Mobile - PullRequest
0 голосов
/ 07 марта 2012

Я хочу изменить атрибут data-theme страницы (jQuery Mobile) динамически, поэтому я привязываю действие к кнопке, это действие получает идентификатор страницы, для которой я хочу изменить ее «data-theme», а затем устанавливает «data-theme» для любого образца (a, b, c, d или e), когда я нажимаю кнопку без изменения темы, вот HTML:

    <div data-role="page" id="admin" data-theme="a" class="page">

    <div data-role="header">

    </div><!-- /header -->

    <div data-role="content"> 
    <a href="#" id="themeButton" data-theme="b" data-role="button" data-inline="true" >ChangeTheme</a>
     </div><!-- /content -->

    <div data-role="footer" data-position="fixed" data-id="ew-footer" class="ui-splitview-hidden">

    </div><!-- /footer -->
  </div><!-- /page -->

вот мой JavaScript:

<script>
    $('#admin').live('pageinit', function (event) {
        $('#themeButton').click(function () {

            document.getElementById('admin').setAttribute('data-theme', 'b')

        });
    });
</script>

1 Ответ

1 голос
/ 07 марта 2012
document.getElementById('RemoveButton').setAttribute('data-theme','b')

В вашей разметке нет элемента со значением id RemoveButton, поэтому код будет выдавать исключение, поскольку document.getElementById('RemoveButton') вернет null, который вы затем пытаетесь разыменовать.


Отдельно, так как вы уже используете jQuery, почему вы не используете его там? Э.Г.

$("#RemoveButton").attr("data-theme", "b");

Это, по крайней мере, помешает вам получить ошибку, хотя, конечно, она ничего не сделает (потому что, опять же, в разметке, которую вы указали, нет элемента с этим id).

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