$(document).ready(function() {
  $('#list3 li.special button').click(function() {
    var $parent = $(this).parent();
    $parent.clone().insertAfter($parent);
  });
});


$(document).ready(function() {
  $('#list4 li.special button').click(function() {
    var $parent = $(this).parent();
    $parent.clone(true).append(' I\'m a clone!').insertAfter($parent);
  });
});

function addItem() {
  $('#list5 li.special button').bind('click', function() {
    var $newLi = $('<li class="special">special and new <button>I am new</button></li>');
    $(this).parent().after($newLi);
    addItem();
  });
}
$(document).ready(function() {
  addItem();
  
  // non-rebinding click handler
  $('#list5 li.special button').click(function() {
    $(this).after(' pressed');
  });
});

function addItemUnbind() {
  $('#list6 li.special button').unbind('click').bind('click', function() {
    var $newLi = $('<li class="special">special and new <button>I am new</button></li>');
    $(this).parent().after($newLi);
    addItemUnbind();
  });
}
$(document).ready(function() {
  addItemUnbind();
  
  // non-rebinding click handler
  $('#list6 li.special button').click(function() {
    $(this).after(' pressed');
  });
});

function addItemNS() {
  $('#list7 li.special button').unbind('click.addit').bind('click.addit', function() {
    var $newLi = $('<li class="special">special and new <button>I am new</button></li>');
    $(this).parent().after($newLi);
    addItemNS();
  });
}

$(document).ready(function() {
  addItemNS();
  // non-rebinding click handler
  $('#list7 li.special button').click(function() {
    $(this).after(' pressed');
  });
});

function addItemFinal() {
    var $newLi = $('<li class="special">special and new <button>I am new</button></li>');
    $(this).parent().after($newLi);
    $('#list8 li.special button').unbind('click', addItemFinal).bind('click', addItemFinal);
}

$(document).ready(function() {
$('#list8 li.special button').bind('click', addItemFinal);

  // non-rebinding click handler
  $('#list8 li.special button').click(function() {
    $(this).after(' pressed');
  });
});

function addRemoveItemNS() {
  var $newLi = $('<li class="special">special and new <button class="addone">I am new</button> <button class="removeme">remove me</button></li>');

$('#list9 li.special')
  .find('button.addone')
	.unbind('click.addit')
	.bind('click.addit', function() {
	  $(this).parent().after($newLi);
	  addRemoveItemNS();
  })
  .end()
  .find('button.removeme')
  .unbind('click.removeit')
  .bind('click.removeit', function() {
    $(this).parent().remove();
  });
}

$(document).ready(function() {
  addRemoveItemNS();
});
