Измените click
на delegate
, поскольку вы создаете элемент hello на лету. Ниже обновленный код. Также функция была написана с ошибкой,
Демонстрация в реальном времени
$.createHello = function() {
$('body').append('<div id="hello">Hello world</div>');
$('body').delegate('#hello', 'click', function(){
alert("Hello you clicker");
});
}
$(document).ready(function(){
$.createHello();
});
Лично я бы так написал:
Обновленная демоверсия
$.fn.createHello = function() {
$(this).append('<div id="hello">Hello world</div>');
$(this).delegate('#hello', 'click', function(){
alert("Hello you clicker");
});
}
$(document).ready(function(){
$('body').createHello();
});
Это позволяет привязать его к любому элементу на странице и вызвать createHello()
Я также предлагаю проверить справочник по созданию плагинов для некоторых полезных советов.