javascript - Creating jquery plugin for objects -
i want create jquery plugin array splice(opposite of push() function).but error uncaught typeerror: allfiles.pull not function
here code:
$.fn.pull = function (index) { this.splice(index-1,1); } var allfiles = ['1','2','3','4','5']; $("div").html(allfiles); allfiles.pull(1); $("div").html(allfiles); .first:before{ content:'before:'; } .second:before{ content:'after:'; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="first"></div> <div class="second"></div>
because $.fn.pull extends jquery function list, not add method object array. do array.prototype.pull. in original code array.pull (allfiles.pull) undefined, because you've never declared it.
i've changed code , wrapped array jquery function: $(allfiles). should give need.
$.fn.pull = function (index) { this.splice(index-1,1); return this.toarray(); } var allfiles = ['1','2','3','4','5']; $("div.first").html(allfiles); allfiles = $(allfiles).pull(1); $("div.second").html(allfiles); .first:before{ content:'before:'; } .second:before{ content:'after:'; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="first"></div> <div class="second"></div> stack snippet array.prototype.pull (not recommended*)
array.prototype.pull = function (index) { return this.splice(index-1,1); } var allfiles = ['1','2','3','4','5']; $("div.first").html(allfiles); allfiles.pull(1); $("div.second").html(allfiles); .first:before{ content:'before:'; } .second:before{ content:'after:'; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="first"></div> <div class="second"></div> * altering original object of javascript such
arraycustom functions not recommended. behaviour can change or external scripts jquery rely on same names.pullpretty generic. @ least use destinctive namemyproject_pull.
Comments
Post a Comment