0

我在 jquery mobile 的列表视图中有问题。

listview 动态构建。onclick li 项目事件未触发且未发生错误。

jQuery函数

function GetDependents() {
    var userid= checkCookie1(); 

    "use strict";
    var wcfServiceUrl = "http://xcxcxcx/PHRService/Service1.svc/XMLService/";
    $.ajax({
        url: wcfServiceUrl + "Dependents",
        data: "PatientID=" + userid + "",
        type: "GET",
        processData: false,
        contentType: "application/json",
        timeout: 10000,
        dataType: "json",
        cache:false,
        beforeSend: function (xhr) {
            $.mobile.showPageLoadingMsg();
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

        },
        complete: function () {

            $.mobile.hidePageLoadingMsg();
        },

        success: function (data) {
            var result = data.GetDependentsResult;
            var items = [];

            $.each(result, function (i, item) {

                items.push('<li><a onclick=redirect(\'AddDependents.htm?id=' + item.ItemID + '\');\>' + item.ItemName + '</a></li>');
            });
            $('#main_list').append(items.join(''));
            $('#main_list').listview('refresh');
        },
        error: function (data) {

        }
    });

}

和 HTML 是

<div data-role="content" data-theme="c">
            <ul data-role="listview" id="main_list">
            </ul>
            <br />
            <a onclick="redirect('AddDependents.htm');" data-role="button" data-icon="plus">Add new...</a>
        </div>

请帮我解决这个问题。

4

1 回答 1

3

调用事件比使用内联 javascript 更好。

试试这个

HTML

items.push('<li><a id="'+ item.ItemID + '">' + item.ItemName + '</a></li>');

查询

$('#main_list').on('click','a',function(e){
    e.preventDefault();
    var Id=$(this).attr('id');
    redirect('AddDependents.htm?id=' +Id );
});

因为您要添加元素,所以on应该使用动态委托事件..

注意:<a>我可以看到标签 的额外关闭

<a onclick=redirect(\'AddDependents.htm?id=' + item.ItemID + '\');\>'
                                                             //---^^---here

你有一个额外\的结束标签<a/>

于 2013-03-28T16:38:09.200 回答