私は基本的な機能を持つJavascriptライブラリを開発しています。このJavascriptライブラリの互換性を改善するにはどうすればよいですか?
私はJavascriptをかなり使い慣れていて、主に自己改善のためにjQueryを自分自身から離しています。
私の目標は、IE 8以降と互換性のあるJavaScriptライブラリを用意することです。そのため、ブラウザ固有の問題点を探しています。
そして残り:
一つの具体的な問題は、私はFirefoxの4
に1つのセレクタに複数のイベントを追加しようとすると、ここで問題になっているモジュールがあります動作するようには思えない私のイベントモジュールであり、図書館のgithubのである:https://github.com/timw4mail/kis-js/blob/master/kis.js
(function(){
var attach, remove, add_remove, e;
if(document.addEventListener)
{
attach = function(sel, event, callback)
{
if(sel.addEventListener)
{
sel.addEventListener(event, callback, false);
}
};
remove = function(sel, event, callback)
{
if(sel.removeEventListener)
{
sel.removeEventListener(event, callback, false);
}
};
}
else
{
attach = function(sel, event, callback)
{
if(sel.attachEvent)
{
sel.attachEvent("on"+event, callback);
}
};
remove = function(sel, event, callback)
{
if(sel.detachEvent)
{
sel.detachEvent("on"+event, callback);
}
};
}
add_remove = function (sel, event, callback, add)
{
var i,len;
if(!sel)
{
return false;
}
//Get the DOM object if you give me a selector string
if(typeof sel === "string")
{
sel = $(sel);
}
//Multiple events? Run recursively!
event = event.split(" ");
if(event.length > 1)
{
console.log(event);
len = event.length;
for(i=0;i<len;i++)
{
add_remove(sel, event[i], callback, add);
}
return;
}
//Check for multiple DOM objects
if(sel.length > 1)
{
len = sel.length;
for(i=0;i<len;i++)
{
(add === true)
? attach(sel[i], event, callback)
: remove(sel[i], event, callback);
}
}
else
{
(add === true)
? attach(sel, event, callback)
: remove(sel, event, callback);
}
};
e = {
add: function(sel, event, callback)
{
add_remove(sel, event, callback, true);
},
remove: function(sel, event, callback)
{
add_remove(sel, event, callback, false);
}
};
window.$_.event = e;
}());
を記述する必要があります代わりに、クリックのことから、(attachHandlerで)IE8のための様々なイベントを使用する必要がjsfiddleを持つことになります。http:/ /jsfiddle.net/NbDnX/1/ – Na7coldwater
ありがとう、特定の問題を表示するように更新しました。 – timw4mail
あなたはjsfiddleを更新しましたか?私はそれを見るために新しいバージョンへのリンクが必要です。 – Na7coldwater