jquery .on не работает с динамическим контентом

0

У меня есть список со многими строками, когда пользователь нажимает на любую строку, я загружаю данные о этой строке и помещаю результат в другой div.

Этот динамический контент имеет этот код:

<div id="reasondiv">
                    <div style="float: left;padding-left:10px;  margin-left:134px;">
                        <label style="color: red; padding-right: 3px;">*</label>
                        <asp:DropDownList runat="server" ID="callDispoSelect" ClientIDMode="Static">
                            <asp:ListItem Value="-1">Select Reason</asp:ListItem>
                            <asp:ListItem Value="1">Reservation</asp:ListItem>
                            <asp:ListItem Value="2">Change of Reservation</asp:ListItem>
                            <asp:ListItem Value="3">Cancellation</asp:ListItem>
                            <asp:ListItem Value="4">Wait List</asp:ListItem>
                            <asp:ListItem Value="5">Other</asp:ListItem>
                        </asp:DropDownList>
                    </div>
                    <div style="float:left">
                        <input runat="server" id="visitID" ClientIDMode="Static"/>
                        <label id="importantSign" style="color: red; padding-right: 3px">*</label>
                    </div>

                </div>

У меня есть код jquery:

$(document).on('change', '#callDispoSelect', function () {
    var selectedValue = $("#callDispoSelect").val();
    if ((selectedValue == 1) || (selectedValue == 5)) {
        $("#visitID").show();
        $("#importantSign").show();
        $("#saveandclosebutton").hide();
    } else {
        if (selectedValue == -1) {
            $("#visitID").hide();
            $("#importantSign").hide();
            $("#saveandclosebutton").hide();
        } else {
            $("#visitID").hide();
            $("#importantSign").hide();
            $("#saveandclosebutton").show();
        }
    }
});

Я получил undifined is not a function в on

Я много читал через Google, и я обнаружил, что мне нужно использовать $(document) и именно это я и сделал. но это мне не помогло

Я вижу, что идентификаторы не меняются. Я вижу это из Google F12 и Firebug, поэтому идентификаторы не меняются

заметка

Я загружаю динамический контент, используя это:

$('#subView').load('SubView.aspx');

Пожалуйста помоги

  • 0
    Какую версию jQuery вы используете?
  • 0
    Может быть, вы жалуетесь на $() а не на on если ошибка не является конкретной? Вы jQuery код, завернутый в событие загрузки jQuery?
Показать ещё 9 комментариев

2 ответа

4
Лучший ответ

Вы уверены, что используете достойную версию jQuery? Когда я сталкиваюсь с такой проблемой, это почти всегда проблема старой версии.

С http://api.jquery.com/on/;

"добавлена версия: 1.7"

  • 0
    да, я уверен, что я использую библиотеку jquyer, у меня много кода, и другой код работает
  • 1
    +1: хорошо угадали. Я бы не ожидал, что кто-нибудь все еще будет использовать jQuery 1.4 :)
0
  $(function () {
        $('#callDispoSelect').on('change', function () {
            var selectedValue = $('#callDispoSelect').val();
        if ((selectedValue == 1) || (selectedValue == 5)) {
            $("#visitID").show();
            $("#importantSign").show();
            $("#saveandclosebutton").hide();
        } else {
            if (selectedValue == -1) {
                $("#visitID").hide();
                $("#importantSign").hide();
                $("#saveandclosebutton").hide();
            } else {
                $("#visitID").hide();
                $("#importantSign").hide();
                $("#saveandclosebutton").show();
            }
        }
        });
    });    
  • 0
    Нет, рекомендуется мы используем on вместо live . "Начиная с jQuery 1.7, метод .live () устарел. Используйте .on () для присоединения обработчиков событий. Пользователи более старых версий jQuery должны использовать .delegate () вместо предпочтения .live ()."
  • 0
    @TrueBlueAussie Мне нужно что-нибудь работает, пожалуйста. Кроме того, где я должен положить это? в сценарии на главной странице или в сценарии внутри subview.asp?
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню