mania-ku

何か作りたいプログラマ未満。

【Advent calendar】jQueryプラグイン作成で躓いたこと

これはadvent calendar4日目の記事です。
3日目の昨日は電子絵本サービス『PIBO(ピーボ)』にお問い合わせをした話でした。

先日ドットインストールのjQueryプラグイン入門で勉強したあと、初めて自作プラグインを作った中で躓いたことがありました。

オプションをcssのプロパティに使いたい!でも動かないorエラーが出る

要素がfixedだったりして左右の位置をオプションで決めたいときなんかに、オプションをプロパティに使いたいですがこれではエラーが出てしまいます…
変数に入れてもダメでした

//プロパティにオプションをつっこむと、エラーでる
elements.css({
~省略~
    opts.pos: 0,
~省略~
});

//変数にオプションつっこむと、動かない
var opts_pas = opts.pos;
elements.css({
~省略~
    opts_pas: 0,
~省略~
});

//.css({})じゃなくて、.css()だと動いた!
elements.css(opts.pos, 0)
もしくは
var opts_pas = opts.pos;
elements.css(opts_pos, 0)

Uncaught TypeError: Illegal invocationというエラーが出た!

.css()の書き方を間違えたため起こりました。シングルクォートで囲んだらエラーが消えました。
普段.css({})しか使わないので…

.css(top, ***)
↓
.css('top', ***)

Object 数値 has no method ‘match’というエラーが出た!

他のmatchを使った場所では起きてないため調べたところ、matchした文字列のところに数値が入っていました。数値を文字列化したらエラーが消えました。
文字列化参考サイト:JavaScriptにおける数値と文字列の相互変換

String(数値)

5日目の明日はjQueryプラグイン作成で気をつけたいところです。
ほんじゃーね;)

Pocket
LINEで送る