jquery ajax不会在Internet Explorer中触发

时间:2011-05-21 05:59:28

标签: 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>

2 个答案:

答案 0 :(得分:1)

当doc首次加载时,锚点不存在可能是相关的。您可以使用live方法快速修复。即使稍后将其添加到DOM,这也会将您的事件应用于您选择的任何事件。

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

此外,如果您正在使用锚点,则可能需要将href属性设置为“#”,以便它不会触发浏览器在某处导航的默认行为。

答案 1 :(得分:0)

    <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中的弹出窗口阻止程序而未运行。 删除弹出窗口拦截器