SilverlightでjQuery
さっきのやつでサーバーサイドからクライアントサイドのJavaScriptを呼び出せる事がわかったので、さっそくjQueryのラッパークラスを作ってみた。
jQuery.cs
class jQuery { private static readonly HtmlWindow window = HtmlPage.Window; private ScriptObject element; public jQuery(string expression) { element = (ScriptObject)window.Invoke("$", expression); } public jQuery Text(string text) { element.Invoke("text", text); return this; } public jQuery Append(params object[] content) { foreach(var obj in content) { element.Invoke("append", (obj is jQuery) ? ((jQuery)obj).element : obj ); } return this; } }
使い方は本家っぽく、こんな感じ
new jQuery("#content").Append( new jQuery("<ul>").Append( new jQuery("<li>").Text("100"), new jQuery("<li>").Text("200") ) );
本家で書くとこれ。そっくり!!
$("#content").append( $("<ul>").append( $("<li>").text("100"), $("<li>").text("200") ) );
ちょっとおもしろそうなので、全機能実装してみよう。