我有以下代码:

$("#another").click(function() {
    $('#another').replaceWith('<a id="another" class="btn btn-primary btn-mini disabled"><i class="icon-refresh icon-white"></i>&nbsp;Loading...</a>');
    $.get('another.php', { 'cycle' : i }, function(data) {
        $('tbody').append(data);
        $("#another").replaceWith('<a id="another" class="btn btn-primary btn-mini"><i class="icon-plus icon-white"></i>&nbsp;Load another cycle</a>');
    });
    i++;
});


当我单击具有另一个ID的元素时,它将加载一次。一键单击后,它将不再起作用。

最佳答案

如果将元素替换为另一个元素,则将删除所有侦听器。为了避免这种情况,您可以将侦听器再次添加到新元素

$('#another').bind('click', function() {
  //do something
});


或将代码移至函数并在元素中添加onclick属性。

onclick="my_function();"


在您当前的javascript中,

$('#another').replaceWith('<a id="another" class="btn btn-primary btn-mini disabled" onclick="my_function();"><i class="icon-refresh icon-white"></i>&nbsp;Loading...</a>');

10-08 15:14