Jquery Json无法正常工作

时间:2013-09-16 18:54:02

标签: javascript jquery json

我有以下工作正常:

      $('<li><a id=' + loc.locId + ' href="/DataEntry"  rel="external">' + loc.locName + '</a></li>').appendTo("#btnList");

       $("#btnList a").click(function () {
            alert(siteName);
            localStorage["dataEId"] = $(this).attr("id");
            localStorage["dataESiteName"] = siteName;
            localStorage["dataESysName"] = sysName;
            localStorage["dataELocName"] = $(this).text();

         }

当我有以下内容时,我甚至无法点击以显示警告消息:

$.getJSON('/Home/GetLocType', { "locId": loc.locId }, function (result) {
    var str = JSON.stringify(result);

    if (str == '1') {
        $('<li><a id=' + loc.locId + ' href="/DataEntry"  rel="external">' + loc.locName + '</a></li>').appendTo("#btnList");
    } else {
        $('<li><a id=' + loc.locId + ' href="/DataEntry/PotableForm"  rel="external">' + loc.locName + '</a></li>').appendTo("#btnList");
    }
    $("#btnList").listview('refresh');
});

$("#btnList a").click(function () {
    alert(siteName);
    localStorage["dataEId"] = $(this).attr("id");
    localStorage["dataESiteName"] = siteName;
    localStorage["dataESysName"] = sysName;
    localStorage["dataELocName"] = $(this).text();
}

请注意确定区别。我需要使用基于值的Json,我需要转到2个超链接中的任何一个。

1 个答案:

答案 0 :(得分:2)

使用事件委托,因为锚是在ajax调用中动态创建的,或者在ajax成功回调中绑定事件(仅用于添加的元素)。如果早期版本的jquery版本&gt; = 1.7查看on

,则live语法将有效
  $("#btnList").on('click', 'a', function () {
        alert(siteName);
        localStorage["dataEId"] = $(this).attr("id");
        localStorage["dataESiteName"] = siteName;
        localStorage["dataESysName"] = sysName;
        localStorage["dataELocName"] = $(this).text();

    }  

您的第一个语法有效,因为它将click事件绑定到btnList下面的锚点,但是它不会将事件绑定到稍后在ajax调用期间添加的事件。