我试图基本上从另一个javascript文件(在javascript文件中)调用一个函数,但它似乎不起作用。
在我的main.html中,我声明了两个文件:
<script type="text/javascript" src="Jquery/jquery-1.4.4.js"> </script>
<script type="text/javascript" src="src/Reply.js"> </script>
<script type="text/javascript" src="src/Comment.js"> </script>
并在Comment.js中调用Reply.js中的函数Reply()..
Comment.js:
function Comment(message){
var self = this;
var message = message;
//
var comment = document.createElement("li");
comment.id = "comment";
comment.style = "display: none;";
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
var parent = document.getElementById("wall");
parent.insertBefore(comment,parent.firstChild);
//effect after insertion
$("ul#wall li:first").fadeOut();
$("ul#wall li:first").fadeIn();
return comment;
}
function newReplyTxtBox(comment){
var buttons = comment.getElementsByTagName("input");
buttons.item(0).disabled="disabled";
var replyBox = document.createElement("div");
replyBox.id="replyBox";
var replyTxt = document.createElement("input");
replyTxt.id="replyTxt";
replyTxt.type="text";
replyTxt.value="Write a reply";
replyTxt.onfocus = function(e){if(this.value==this.defaultValue) this.value='';};
replyTxt.onblur= function(e){if(this.value=='') this.value=this.defaultValue;};
replyBox.appendChild(replyTxt);
createButtons(replyBox);
comment.appendChild(replyBox);
}
function newReply(replyBox){
var message = $("input#replyTxt").val();
var reply = new Reply(message);
replyBox.parentNode.remove(replyBox);
var replyField = replyBox.parentNode.getElementsByTagName("ul").item(0);
replyField.appendChild(reply);
}
一旦你点击“回复按钮”就可以简单地调用newReply(),这样就是这样创建的:
var submitBtn = button.cloneNode();
submitBtn.value = "submit";
submitBtn.addEventListener("click", function(){newReply(parent)},false);
parent.appendChild(submitBtn);
Reply.js:
function Reply(replyMsg){
var self = this;
var reply = document.createElement("li");
reply.id="reply"
reply.textContent = replyMsg;
var deleteBtn = document.createElement("input");
deleteBtn.value = "delete";
deleteBtn.addEventListener("click", function(){deleteReply(reply)},false);
reply.appendChild(deleteBtn);
return reply;
}
function deleteReply(reply){
reply.parentNode.removeChild(reply);
}
答案 0 :(得分:1)
在newReply函数中,尝试更改replyBox.parentNode.remove(replyBox);
到replyBox.parentNode.removeChild(replyBox);