-1
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript" language="javascript">

// when the document has finished loading, get the data
$(document).ready(GetData());

function GetData() {

    $.ajax({
        beforSend: function () {
            $('#loadingDiv').css('display', 'block')
        },
        complete: function () {
            $('#loadingDiv').css('display', 'none')
        },
        type: "GET",
        url: "/Integrationsonify/Data.aspx",
        data: dataObject,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {

            var header = $("#accordion");

            $.each(data, function () {

                header.append("<a href='javascript:toggleDiv();'>" + this.Name + " </a>", "<div id='myContent' style='display:none'>" + "<ul>", "<li>" + this.Id + "</li>", "<li>" + this.SName + "</li>", "</ul>" + "</div");

            });
        },
        error: function () {
            alert("There was an error while rendering the page. Please contact the Admin for details");
        }

    });

   }
   function toggleDiv() {

                  $("#myContent").toggle();

   }

</script>
<div id="loadingDiv" style="display: block;">
    hi
</div>
<div id="accordion">

</div>

我无法切换 myContent div ..是因为它是在 ajax 调用中创建的吗?显示了 div,但是如果我为页面做一个查看源,我在手风琴 div 中看不到任何数据..但是在浏览器的 ui 端,我至少可以看到数据..谢谢,我很抱歉,我知道它是非常基本的问题,但我现在需要尽快找到解决方法,所以请指导我......

4

2 回答 2

2

使用beforeSend而不是beforSend. 你应该使用hide()andshow()来隐藏/显示你的 div,它更清晰。

编辑 :

我不知道您期望什么数据,因此我无法真正帮助您,但请尝试以这种方式调试它:

  • 如果您使用的是 chrome,请右键单击页面上的任意位置,然后单击“检查此元素”(或类似的 smthg)
  • 如果您在 firefox 中,请下载 firebug 扩展
  • 如果您在 IE 中,请下载以前的浏览器之一

你会在网上找到一些用这个工具调试js的方法,如果你做很多js会很有帮助。

只是一个建议,当你使用 jQuery 时尝试以这种方式插入 HTML,它的可读性更高,你可以调试它:

header.append(
    $('<a/>').click(function() {
        toggleDiv();
        return false;
    }),
    $('<div id="myContent"/>').hide().append(
        $('<ul/>').append(
            $('<li/>').text(this.Id),
            $('<li/>').text(this.SName)
        )
    )
);

编辑 2:

抱歉,我没有仔细考虑,应该是:

$('<a/>').click(function() {
    toggleDiv($(this));
    return false;
})

在您的 toggleDiv 函数中:

function toggleDiv ($elem) {
    $elem.next().toggle();
}

我认为这会奏效

编辑 3:

当然你应该放$('<div class="myContent"/>'),因为 HTML 规范禁止具有相同 id 的多个元素。然后,您的选择器变为$('.myContent')并返回多个元素

于 2012-10-18T15:22:29.057 回答
0

I just replaces (,) with (+) and it started working ..weird!!!

于 2012-10-18T15:23:56.140 回答