When I run my code below then it shows error object is not a function
in console. This error is on this line var todo = new Todo('contents');
in my script.js
file. How can I make it work?
Here is my todo.js file
var Todo = (function(c) {
var contents = $('.' + c);
var showel = function (d) {
contents.prepend(d);
},
add = function (name) {
if(name != ) {
var div = $('<div class=names></div>')
.append('<span>' + name + '</span>')
.append(<button class='update' class='update'>Edit</button>)
.append(<button class='remove' name='remove'>Remove</button>);
}
return showel(div);
},
addUpdateField = function (dom) {
var name = dom.parent().find('span').text(),
field = $('<input type=text value=' + name + ' />'),
update = $('<button class=updateBtn>Update</button>');
dom.parent().html('').append(field).append(update);
return;
},
update = function(el) {
var val = el.parent().find('input').val();
el.parent().html('<span>' + val + '</span>')
.append('<button class=update class=update>Edit</button>')
.append('<button class=remove class=remove>Remove</button>');
return;
},
remove = function (el) {
return el.remove();
};
return {
add : add,
update : update,
remove : remove,
addUpdateField : addUpdateField
};
})();
here is my script.js file
$(function () {
var todo = new Todo('contents');
$('.addBtn').on('click', function() {
var name = $(this).parent().find('input[type=text]').val();
todo.add(name);
});
$('.contents').on('click', '.remove', function() {
var el = $(this).parent();
todo.remove(el);
});
$('.contents').on('click', '.update', function() {
var dom = $(this);
todo.addUpdateField(dom);
});
$('.contents').on('click', '.updateBtn', function() {
var el = $(this);
todo.update(el);
});
});
here is html code
<html>
<head>
<script type=text/javascript src=http://code.jquery.com/jquery-latest.js> </script>
<script type=text/javascript src=todo.js></script>
<script type=text/javascript src=script.js></script>
<link rel=stylesheet type=text/css href=styles.css>
<title></title>
</head>
<body>
<div class=container>
<label>Name</label>
<input type=text class=name name=name />
<input type=button class=addBtn name=add value=Add />
<div class=contents></div>
</div>
</body>
</html>