我正在嘗試創建一個跨瀏覽器animationListener,並且有一個substr
函數的問題!Javascript substr問題
function animationEventListener(elem, listener, callback){
if(!elem){return;}
if(listener.length < 0){ console.error("Add event type listener"); }
listener = listener.toLowerCase();
var _prefix = ["", "o", "webkit", "MS"];
var _anmkeyword = new String("animation");
var _keywordlength = _anmkeyword.length;
var _nlistener;
for(var i = 0; i < 4; i++){
if(_prefix[i] == "MS" || _prefix[i] == "webkit"){
var _ol = _keywordlength + 1;
_nlistener = listener.substr(0, 1).toUpperCase()
+ listener.substr(1, listener.length - (listener.length - _keywordlength)-1)
+ listener.substr(9, 10).toUpperCase()
+ listener.substr(_keywordlength+1, listener.length);
}
console.log(_prefix[i] + listener + "\n" + _nlistener);
}
}
嘗試它,你看:
listener = "animationend";
listener.substr(9, 10); // returns "end";
爲什麼?
你期待什麼結果呢? –
你可能想要使用'substring'方法。查看[文檔](http://www.w3schools.com/jsref/jsref_substring.asp),可能會有所幫助。 – prtksxna
在這個代碼substr需要結果一個字母「e」,但他返回「結束」,爲什麼? –