this wee bit of code part of javascript getting table jsonp data. works on safari, opera, chrome, firefox , mobile safari.code:if (document.getelementsbyclassname == undefined) { document.getelementsbyclassname = function(classname) { var hasclassname = new regexp("(?:^|\\s)" + classname + "(?:$|\\s)"); var allelements = document.getelementsbytagname("*"); var results = []; var element; (var = 0; (element = allelements[i]) != null; i++) { var elementclass = element.classname; if (elementclass && elementclass.indexof(classname) != -1 && hasclassname.test(elementclass)) { results.push(element); } return results; } } } function sortable() { var sortable = document.getelementsbyclassname('sortable'); for(var in sortable) { element = sortable[i]; if (element.id != undefined) { var sort_id = element.id; document.getelementbyid(sort_id).addeventlistener('click', sort, false); } } } function sort() { if (last_sorted == this.id + "desc") { last_sorted = this.id + "asc"; order = this.id + " asc"; if (search_temp != undefined) { my_table(limit, offset, order, search_temp); } else { my_table(limit, offset, order, filter); } } else { last_sorted = this.id + "desc"; order = this.id + " desc"; if (search_temp != undefined) { my_table(limit, offset, order, search_temp); } else { my_table(limit, offset, order, filter); } } }
problem can't working on ie 8 minimum supported browser need support, while aware jquery can own 'joy' doing pure javascript has proved clean sailing in getting jsonp cross domain, searching, paginating etc.
appreciated, believe attachevent() way go not support 'this'.
i've tried adding.
which changes sort() followingcode:element.prototype.addanevent = function(name, funct){ if(this.addeventlistener) // works in normal browsers... { this.addeventlistener(name,funct, false); } else if(this.attachevent){ var _this = this; this.attachevent("on"+name, function(){funct.apply(_this);}); //where value of "this" in funct should point "element" } };
now research should work seems work on modern browsers, ie8 not register clicks alert have set never called.code:function sort() { alert('ho'); if (last_sorted == this.id + "desc") { last_sorted = this.id + "asc"; order = this.id + " asc"; if (search_temp != undefined) { my_table(limit, offset, order, search_temp); } else { my_table(limit, offset, order, filter); } } else { last_sorted = this.id + "desc"; order = this.id + " desc"; if (search_temp != undefined) { my_table(limit, offset, order, search_temp); } else { my_table(limit, offset, order, filter); } } }
Forums Special Interests Web Design and Development
- iPhone
- Mac OS & System Software
- iPad
- Apple Watch
- Notebooks
- iTunes
- Apple ID
- iCloud
- Desktop Computers
- Apple Music
- Professional Applications
- iPod
- iWork
- Apple TV
- iLife
- Wireless
No comments:
Post a Comment