jQueryをmootoolsなどの他のライブラリと干渉しないようにする方法まとめ
ブログとかのプラグインでよく分からず使ってる人もいるみたいですし。結論は一番上のやつやってればいいんですけど、というか、プラグインソースは全部こうなってないとだめなんですけど、古いソースコードはそうなっていないものもあったりして(thickboxとか)、思いつく方法全部書き出します。
ブログとかのプラグインでよく分からず使ってる人もいるみたいですし。結論は一番上のやつやってればいいんですけど、というか、プラグインソースは全部こうなってないとだめなんですけど、古いソースコードはそうなっていないものもあったりして(thickboxとか)、思いつく方法全部書き出します。
この前ちょっと聞かれたので、メモっときます。
AjaxでJS含んだページをそのままロードするとDOMに追加した時点で実行しよるんで、それを回避するためのやつです。Autopagerizeを参考にしたと思います。
ついでに取得したHTMLの走査方法ですが、そのまま$(html)とかにすると、一番上のwrapperとかそういうdivだったりする要素が取得できないので、一旦divをかませておきます。
$.ajax({
url: "hoge.html",
type: "GET",
success: function(html) {
// 文字列で取得したデータを整理する
html = html.replace(/<script(?:[ \t\r\n][^>]*)?>[\S\s]*?<\/script[ \t\r\n]*>|<\/?(?:i?frame|html|script|object)(?:[ \t\r\n][^<>]*)?>/gi, "");
var _div = $("<div>" + html + "</div>");
// 取得したHTMLの走査は_div.find("a")のようにする
// hogehoge
}
});
html = html.replace(/<script(?:[ \t\r\n][^>]*)?>[\S\s]*?<\/script[ \t\r\n]*>|<\/?(?:i?frame|html|script|object)(?:[ \t\r\n][^<>]*)?>/gi, "");
よくわからんと思いますけど、サンプルを見ればなんとなく伝わるような。。
指定した要素のブラウザがその時表示している位置を以下のテーブルの数値で返します。
┏━┳━┳━┓
┃0┃1┃2┃
┣━╋━╋━┫
┃3┃4┃5┃
┣━╋━╋━┫
┃6┃7┃8┃
┗━┻━┻━┛
返す数値は、実際returnで返ってくるわけじゃないんです。指定した要素にjQuery.dataで”ElementPos”というプロパティに書きこんでます。
ダウンロードはgithubからどぞー
こんな感じで取れます。
$(target)
.m5GetElementPos()
.click(function() {
alert($.data($(this), "ElementPos"));
return false;
});
または、コールバックでも使えます。
$(target).click(function() {
$(this).m5GetElementPos({
returnNumber: false,
callback: function() {
alert($.data(this, "ElementPos"));
}
});
return false;
});
コールバック関数ではcallback.callしているので、thisはm5GetElementPosを実行した要素になります。
| returnNumber | 数値で返すか、文字で返すか。デフォルトは数値でtrue |
| returnCancel | falseを指定するとthisを返さないので、メソッドチェーンができなくなります |
| callback | コールバック関数 |
バグとかあれば教えてください
jQselectableにdisabled・enabledメソッドを追加しました。
ただし利用できるのは、対象selectable要素ひとつに対してです。複数個ある場合、任意に指定して利用します。