jquery ajax не запускается в Internet Explorer

#javascript #jquery #ajax #internet-explorer

#javascript #jquery #ajax #internet-explorer

Вопрос:

Я использую функцию для запуска при нажатии на любой из определенного набора привязок.
Это работает в Firefox 3 и Chrome.

Они не существуют, когда страница впервые начинает загружаться, поскольку они создаются с помощью XML XSLT с использованием преобразования на стороне клиента, на всякий случай, если это каким-то образом имеет значение.

Я также поместил это предупреждение туда только для того, чтобы посмотреть, делает ли оно вообще что-нибудь… даже нет предупреждения в IE. Это не работало в Chrome, но это было потому, что мне не хватало инструкции $ document.ready [все еще работало в FF], но я не уверен, какой недостающий элемент для IE. Кстати, я использую IE 8.

         <script type="text/javascript">
        $(document).ready(function () {
            $("#BlogSelectList li a").click(function () {
                alert('hhi')
                var str = ($(this).attr("href")).slice(1, 37)
                $.ajax({
                    contentType: "application/json; charset=utf-8",
                    url: '../ws/WebServices.asmx/SetActiveBlog',
                    data: '{ActiveBlogID: "'   str   '"}',
                    dataType: 'json',
                    type: "post",
                    success: function (j) {
                            window.location.href = 'dashboard.aspx'
                    }

                });

            });
        })
    </script>
  

Ответ №1:

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

 $("#BlogSelectList li a").live("click", function() {etc...});
  

Кроме того, если вы используете привязку, вам, вероятно, потребуется установить для атрибута href значение «#», чтобы он не запускал поведение браузера по умолчанию для перехода куда-либо.

Комментарии:

1. Это исправлено, спасибо, у меня был # на нем, вот почему я использовал slice, чтобы передать его веб-сервису просто как идентификатор guid без #.

Ответ №2:

     <script type="text/javascript" src="jquery-1.6.1.min.js"></script>
    <script type="text/javascript">
            $(document).ready(function () {
                $("#click").click(function () {
                    alert('hhi');
                    });
                    });

    </script>
<table>
<tr><td id='click'>ravi</td></tr>
</table>
  

попробуйте это в IE8 и скажите мне.
однажды этот код не запускался из-за блокировки всплывающих окон в IE8.
удалить блокировщик всплывающих окон