Note that there are some explanatory texts on larger screens.

plurals
  1. POCalling a function from another javascript file inside a javascript file
    text
    copied!<p>I am trying to basically call a function from another javascript file (inside a javascript file) but it doesn't seem to work.</p> <p>In my main.html i have declared both files like so:</p> <pre><code>&lt;script type="text/javascript" src="Jquery/jquery-1.4.4.js"&gt; &lt;/script&gt; &lt;script type="text/javascript" src="src/Reply.js"&gt; &lt;/script&gt; &lt;script type="text/javascript" src="src/Comment.js"&gt; &lt;/script&gt; </code></pre> <p>and inside Comment.js I call the function Reply() that is inside Reply.js..</p> <p>Comment.js:</p> <pre><code>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); } </code></pre> <p>the newReply() is simply called once you click on the "reply button" which is create like so:</p> <pre><code>var submitBtn = button.cloneNode(); submitBtn.value = "submit"; submitBtn.addEventListener("click", function(){newReply(parent)},false); parent.appendChild(submitBtn); </code></pre> <p>Reply.js:</p> <pre><code>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); } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload