none
JQuery функция не работает RRS feed

  • Вопрос

  • chat.client.DeleteChatMessage = function (commentId) {
            $('#' + commentId).remove();
        };
    Не хочет удаляться объект. Эта функция вызывается, так как алерт если поставить, то работает. Может не хочет удаляться, так как есть дочерние элементы?
    11 апреля 2014 г. 8:40

Ответы

  • Понятно, дело в том, что двоеточие в jQuery это спецсимвол. Старайтесь не использовать его в ид тега. Или экранируйте его "#comment\\:16" обратными слешами.

    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа Rio39 11 апреля 2014 г. 14:18
    11 апреля 2014 г. 13:02
    Модератор
  • В старых версиях библиотеки есть метод live, он используется. В новых заменили на on.

    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа Rio39 11 апреля 2014 г. 17:10
    11 апреля 2014 г. 16:58
    Модератор

Все ответы

  • А commentId у вас точно содержит нужное значение, посмотрите в отладчике. В окне консоли брвузера вы можете вычислить выражение $('#' + commentId), и там оно покажет, что возвращается.

    Сделаем содержимое сообщества лучше, вместе!

    11 апреля 2014 г. 11:09
    Модератор
  • Ну, если поставить перед ремувом alert(commentId);
    То выведет "comment:16".

    Есть на странице <p id="comment:16">...</p>

    11 апреля 2014 г. 12:51
  • Понятно, дело в том, что двоеточие в jQuery это спецсимвол. Старайтесь не использовать его в ид тега. Или экранируйте его "#comment\\:16" обратными слешами.

    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа Rio39 11 апреля 2014 г. 14:18
    11 апреля 2014 г. 13:02
    Модератор
  • Какие еще символы лучше не использовать в id?
    Поставил две точки, так как в Razor подобное без пробела или какого либо символе не берет значение из переменной comment =) .
    <p id="comment@comment.ID">
    11 апреля 2014 г. 14:16
  • Убрав двоеточие - помогло. Спасибо.
    11 апреля 2014 г. 14:19
  • "Какие еще символы лучше не использовать в id?" - старайтесь использовать буквы. Если нужен пробел, ставьте тире или нижнее подчёркивание.

    Сделаем содержимое сообщества лучше, вместе!

    11 апреля 2014 г. 14:56
    Модератор
  • Хм...теперь другая проблема.

    Для примера левый код возьму:

    <input type="button" data-val="text" id="btn-1" value="btn1"/>
    <input type="button" data-val="btn-1" id="btn-2" value="btn2" />
    <div id="box"></div>
    <script>
        $(":button").click(function () {
            $('#box').append('<input type="button" value="btn"/>');
        })
    </script>

    Все новосозданные баттоны не обрабатываются. Что можно сделать?


    • Изменено Rio39 11 апреля 2014 г. 16:01
    11 апреля 2014 г. 16:00
  • В старых версиях библиотеки есть метод live, он используется. В новых заменили на on.

    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа Rio39 11 апреля 2014 г. 17:10
    11 апреля 2014 г. 16:58
    Модератор