リビジョン: | 2 |
---|---|
リリース日: | 2010-06-21T14:26:40Z |
著作者: | Kumanote kikaku corp. |
配布元: | http://code.google.com/p/kem/ |
添付の demo/browser_check.html で表示される数値(グレード)から、ブラウザが対応しているかどうかを確認可能です。
添付の test/runner.html を実行すると、KEM.js向けのUnitTestが実行されます。
実行完了後に、最下段の結果表示部分(all results)に 4 tests, 19 fixtures, 240 assertions, 0 failures. と表示されれば、そのブラウザはグレード1以上であることを表します。
結果が 4 tests, 19 fixtures, 12 assertions, 0 failures. と表示されれば、そのブラウザはグレード0であることを表します。
<div id="demo">Click Me !</div> <script type="text/javascript" src="KEM.js"></script> <script type="text/javascript"><!-- if (window.KEM) window.KEM(function() { KEM.element('#demo', function(e) { KEM.addEvent(e, 'click', function() { alert('Click !'); }); }); }); //--></script>
KEM.GRADE が1以上で、、 handler が Function である場合は、 handler を実行し、その結果を返します。そうでない場合は何もせずに undefined を返します。
この関数のみ、KEM.GRADEが0でも使用可能ですが、上記の通り handler は実行されません。
if (window.KEM) KEM(function() { KEM.addClass(document.body, 'js-only'); });
target に source を浅くコピーし、 target を返します。
target が Function オブジェクトであれば true 、そうでなければ false を返します。
target が Array オブジェクトであれば true 、そうでなければ false を返します。
str を文字列に変換し、前後の空白を取り除いた結果を返します。 ただし、 str が null または undefined の場合は空文字列を返します。
str を文字列に変換し、HTML向けのエスケープ処理を行った結果を返します。 ただし、 str が null または undefined の場合は空文字列を返します。
str を文字列に変換し、正規表現向けのエスケープ処理を行った結果を返します。 ただし、 str が null または undefined の場合は空文字列を返します。
src で指定されたパスをスクリプトとして読み込むような SCRIPT タグを出力します。
<script type="text/javascript"><!-- if (window.KEM) window.KEM(function() { KEM.loadScript('jquery-1.4.2.min.js'); }, 'modern'); //--></script> <script type="text/javascript"><!-- if (window.jQuery) $(function() { alert('jQuery loaded !'); }); //--></script>
href で指定されたパスをスタイルシートとして読み込むような LINK タグを出力します。
target に kind で指定されたイベントで handler を実行するよう設定します。
kind には click や mouseover などを指定可能です( onclick のように on を前置する必要はありません)。
target がイベント登録できない場合、 handler が Function でない場合は何もしません。
handlers に、 イベント種別をキー、 イベント処理を値としたオブジェクトを指定することで、複数のイベントをまとめて登録します。
KEM.addEvent(ELEMENT, { hover: function() { KEM.addClass(ELEMENT, 'hover'); }, blur: function() { KEM.removeClass(ELEMENT, 'hover'); } });
name をタグ名とする要素の Array を返します。
name は文字列に変換されますが、このとき、先頭の文字が # である場合は、CSSの一意セレクタのように振舞います( #foo であれば、id属性値が foo である要素を抽出します)。
handler が Function の場合は、得られた要素すべてについて handler が実行されます。このとき、 handler には引数として 要素, 得られた要素のうち何番目か, 要素のArray が渡されます(Array#forEachなどに似ています)。
KEM.elements('div', function(e, i, a) { KEM.addClass(e, 'foo'); }); KEM.elements('#bar', function(e, i, a) { KEM.addClass(e, (i & 1) ? 'odd' : 'even'); });
tagName をタグ名とし、クラス名に klass を含む要素の Array を返します。
klass が空白区切で複数指定された場合は、指定されたクラスすべてを持つ要素を抽出します(AND条件となる)。
handler については KEM.elements(name, handler=null) と同様です。
target の子孫の内、 tagName をタグ名とする要素の Array を返します。
target がノードでない場合は空の Array を返します。
handler については KEM.elements(name, handler=null) と同様です。
target の子孫の内、 tagName をタグ名とし、クラス名に klass を含む要素の Array を返します。
target がノードでない場合は空の Array を返します。
klass が空白区切で複数指定された場合は、指定されたクラスすべてを持つ要素を抽出します(AND条件となる)。
handler については KEM.elements(name, handler=null) と同様です。
parent の子の内、 tagName をタグ名とする要素の Array を返します。
parent がノードでない場合は空の Array を返します。
handler については KEM.elements(name, handler=null) と同様です。
parent の子の内、 tagName をタグ名とし、クラス名に klass を含む要素の Array を返します。
parent がノードでない場合は空の Array を返します。
klass が空白区切で複数指定された場合は、指定されたクラスすべてを持つ要素を抽出します(AND条件となる)。
handler については KEM.elements(name, handler=null) と同様です。
target が要素だった場合、その祖先から tagName と要素名が一致するものを返します。
target が要素でない場合、見つからない場合は null を返します。
tagName が文字列として無効か、空文字列の場合は単に親ノードを返します。
target.classNameに klass が含まれていれば true 、そうでなければ false を返します。
target が null および undefined の場合、 klass が文字列として無効か空文字列の場合は false を返します。
klass には複数のクラスを空白区切で指定可能で、その場合は複数のクラスを含むかどうかを判別します。
KEM.hasClass({className: 'apple banana'}, 'apple'); // true KEM.hasClass({className: 'apple banana'}, 'banana'); // true KEM.hasClass({className: 'apple banana'}, 'apple banana'); // true KEM.hasClass({className: 'apple banana'}, 'apple banana cocoa'); // false
target.classNameに klass を重複がないように加えます。
target が null および undefined の場合、 klass が文字列として無効か空文字列の場合は何もしません。
klass には複数のクラスを空白区切で指定可能で、その場合は複数のクラスを加えます。
target.classNameから klass を取り除きます。
target が null および undefined の場合、 klass が文字列として無効か空文字列の場合は何もしません。
klass には複数のクラスを空白区切で指定可能で、その場合は複数のクラスを取り除きます。