【问题标题】:Jquery Mobile - onclick not workingJquery Mobile - onclick 不起作用
【发布时间】:2013-06-09 15:39:31
【问题描述】:

该功能在单击任何内容之前发生... 如

当我点击名称 ^ fdsa 时,例如,我需要弹出 id,但由于某种原因加载页面时它会自动发生

HTML

<ul data-role="listview" id="ccontent" data-inset="true">

</ul>

JS

function getClubs() {
    $.ajax({
        url: 'some url',
        crossDomain: true,
        type: 'post',
        data: '',
        success: function (data) {
            $('#ccontent').empty();
            var json = jQuery.parseJSON(data);
            for (var i = 0; i < json.length; i++)
            $('#ccontent').append('<li><a href=\"#\"+onclick=\"' + getData(json[i].id) + '\" rel="external">' + json[i].name + '</a></li>');
            $('#ccontent').listview('refresh');
        },
    });
}

function getData(id) {
    $('#clubcontent').append ('<li>'+id+'</li>');
    $('#clubcontent').listview('refresh');
};

【问题讨论】:

  • 我在您的代码中看不到click 函数?编辑:哦,得到它内联javascript。删除它并使用.on('click') 回调函数。还有,listview的ID是ccontent还是ccontent?
  • @joe 这只是我在 stackoverflow 上输入时犯的一个错误
  • @Omar,我该怎么做,你能举个我的例子吗

标签: javascript jquery html listview jquery-mobile


【解决方案1】:

我想这就是你要找的东西:

$(document).on('click', '#ccontent li a', function () {
    getData($(this).data('club-id'));
});

function getClubs() {
    $.ajax({
        url: 'some url',
        crossDomain: true,
        type: 'post',
        data: '',
        success: function (data) {
            $('#ccontent').empty();
            var json = jQuery.parseJSON(data);
            for (var i = 0; i < json.length; i++)
            $('#ccontent').append('<li><a href="#" data-club-id="' + json[i].id + '" rel="external">' + json[i].name + '</a></li>');
            $('#ccontent').listview('refresh');
        }
    });
}

.on() 用于代替内联 onclick 事件。 club-id 用于存储id,在getData() 函数中使用。

【讨论】:

  • 谢谢!这正是我想要的:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
  • 2016-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多