1
我已经在我的javascript中定义了几个函数,这些函数完美地工作,但是当我将它放入原型中时,它似乎不起作用。在javascript中使用原型
wall.html:
<script type="text/javascript" src="Jquery/jquery-1.4.4.js"> </script>
<script type="text/javascript" src="src/CommentManager.js"> </script>
<script type="text/javascript" src="src/Reply.js"> </script>
<script type="text/javascript" src="src/Comment.js"> </script>
<script type="text/javascript">
$(document).ready(function(){
CommentManager();
$("form#newMessage").submit(function(){
var message = $("input#newMessageTxt").val();
var newComment = new Comment(message);
});
});
</script>
</head>
<body>
<div class="message">
<form id="newMessage">>
<input type="text" id="newMessageTxt" height="200px" value="Write a message" onfocus="if(this.value==this.defaultValue) this.value='';" onblur="if(this.value=='') this.value=this.defaultValue;" />
<input type="submit" value="Submit" ></button>
</form>
</div>
</body>
,但怪异的一部分是,当我运行googlechrome调试工具,在$( “#形式NewMessage作为”)提交完全不来电。所以评论(消息),从未创建(这是我已经设置了原型功能)
Comment.js:
function Comment(message){
var self = this;
var message = message;
var comment = document.createElement("li");
comment.id = "comment";
comment.textContent = message;
//empty reply field
var replyField = document.createElement("ul");
replyField.id = "replyField";
//create the appropriate buttons
createButtons(comment);
//append the replyField
comment.appendChild(replyField);
//insert into wall
addComment(comment);
//effect after insertion
Effect(comment);
$(comment).mouseleave(function() {mouseOut(comment);});
$(comment).mouseenter(function() {mouseOver(comment);});
return comment;
}
Comment.prototype={
deleteComment : function (comment){
$(comment).fadeOut();
setTimeout(function() {comment.parentNode.removeChild(comment);},500);
},
//there are more methods here
}
Commentmanager.js:
function CommentManager(){
var owner = null;
var wall = document.createElement("ul");
wall.id = "wall";
document.body.appendChild(wall);
return wall;
}
function addComment(comment){
var wall = document.getElementById("wall");
wall.appendChild(comment);
}
不幸的是,我所能做的只是重新编码,因为我不会说jquery。 '原型'有点误导。 – 2010-12-20 20:18:02
你试过调试吗? – SLaks 2010-12-20 20:22:35
实际上,'原型'是javascript中的一个描述性术语,与软件开发中的其他任何地方有不同的含义(不幸:():请参阅http://javascript.crockford.com/prototypal.html来描述原型'在js中意味着'也许'javascript-prototype'应该是一个标签? – 2010-12-20 20:29:41