目指せ非プログラマー

もう何でもごじゃれ言語

fullCalendarでクリックした日にイベントがあるかどうかを判定する

結構調べまわった・・・

 

dayClick: function( date, allDay, jsEvent, view ) {

  var date2 = new Date(date.getFullYear(), date.getMonth(), date.getDate()+1);

  var events = view.calendar.clientEvents(function(event) {

    return event.start >= date && event.start < date2;

  });

 

}

 

これでeventsにイベントがあれば配列で入っています。

なくても空の配列になっています。

ただ、イベントがあるかないかだけなら

events.length が0よりも大きいときということになります。

 

clientEventsの引数の"filter"のかけ方がいまいちわからなくて

"="や”==”をいろいろ試してみたのですが・・・

関数(function)を突っ込むみたいですね・・・いやよくわからんww

ってか、ドキュメント適当すぎだろw

 

参照先

FullCalendar Documentation - dayClick

FullCalendar Documentation - clientEvents

Issue 211 - fullcalendar - easy way to check if exist events on a day - Full-sized Calendar jQuery Plugin - Google Project Hosting

css :hoverがipad、iphone でずれる

なーにかよくわからないけど

 

ipadで表示していると

jQueryのclickイベントとcssの:hoverの位置がずれます。

 

offset関連のバグかと思うのですが。。。

 

jQueryのclickイベントは思った通りの箇所に行っていましたので

cssの:hoverを取り除き、jQueryの.hover(over, out)を使ってみました。

 

そした、意図したとおりの位置をhoverが走ってくれて・・・

 

ふざけやがって。

 

中途半端に:hoverに対応するからこういうことになるんだよ。iOS

 

なんて、まったくわからなない私が愚痴を言ってみます。

よくわからない正規表現

正規表現サンプル(エスケープが必要な文字)

ここを見るとどこぞのブログで書いていた正規表現が間違えだとわかります。

 

特殊文字

\

*

+

.

?

{

}

(

)

[

]

^

$

-

|

/

なんだな。

 

たぶんでしかわからない私は・・・

 

javascript正規表現に関して言えば

 

正規表現 - JavaScript | MDN

 

ここ見ればいんだろうな

 

説明がわからないんだけどねw

 

ここなかもよく見るけど・・・

 

正規表現言語 - クイック リファレンス

 

やっぱり、いつも調べては・・・

正規表現わかんね!」「んじゃ使わね!」

ってなるんだよな~w

 

正規表現使える人ってかっこいいよねw

javascriptのDateに文字列突っ込んだらIEとFireFoxでInvalidになりやがった。。。

var dateStr = "2000-10-10 00:00:00";

var date = new Date(dateStr);

 

dateの値がChromeだとうまくいくのにIE,FireFoxでうまくいきません。

IE8, IE9, IE10, FireFox 24.0

結論から言うと"-"区切りがダメみたいです。

 

なので

 

dateStr.replace("-", "/");

追記で修正 

 

を突っ込んでおくといいでしょう。

 

しかし、なんでなんでしょうね。

 

というのも、javascriptにもいろいろ種類があります。

 

ブラウザによりこのjavascriptの種類が違うのです!

 

だから時々、戻り値がブラウザで違う!なんてことも。

 

なれるとすべてのブラウザに対応したjavascript文が書けるようになるらしいよ。

 

ちなみに種類に関してはGoogle先生に”ECMAScript”とか聞いてみるといいかも。

 

追記

dateStr.replace("-", "/");

だと全ての"-"を変換してくれませんでしたねw

/-/gとかにすればいいんだっけか?

正規表現がいまだにおぼえれません。

 

なので、dateStr.split("-").join("/")で許してください。

ページ遷移時にpostパラメータを送信する jQueryのpostと同時にそのページに移動

結論:結構無理矢理です。

 

そして今回も時間がないので簡単に書いていきます。

 

ページ遷移時にpostでデータを送りたいけど・・・できないらしい。

{url}?hoge=hoge

って感じでGETが普通なんだそうな。

 

そりゃ

location.href = {url};

とかだからpostを挿入する隙がない!・・・()

 

そんなの信じない!

 

で、無理矢理実現してみます。

 

js

var html = "<form method='post' action='{url}' id='refresh' style='display: none;'>" +

  "<input type='hidden' name='hoge' value='hoge' >" +

  "</form>";

$("body").append(html);

$("#refresh").submit();

 

実はjQueryのpostを使用していませんw

 

HTMLを生成して、そいつを動かすという・・・

 "<input type='hidden' name='hoge' value='hoge' >" 

をさらに追加することでpostパラメータを増やすこともできると思います。

 

また、こいつを関数化することでもっと使いやすくなること間違いなし!

けど、idの重複などに注意してください。

 

以外に簡単に実現できたのでよかった。

ajaxでphp側から投げられたcsvファイルをダウンロードさせる方法

ちょっと時間がないので簡単に書きます。

 

fuelphp

jQueryを使用しています。

 

php---------------------------------

$data = "1-a,1-b,1-c\n"

$data .= "2-a,2-b,2-c\n"

 

$this->respnse($data);

---------------------------------

 

js---------------------------------

$.ajax({

url: hogehoge,

type: "POST",

data:hoge,

datatype:"json",

success: function(res, status, xhr)

{

var a = "<a download='hoge.csv' href='data:application/csv;charset=utf-8," + encodeURIComponent(res) + "'>CSVファイル</a>";

$(".dl-parent").html(link);

var a = $(".dl-parent a")[0];

var e = document.createEvent('MouseEvents');

e.initEvent('click', true, true);

a.dispatchEvent(e);

}

---------------------------------

 

html---------------------------------

<div style="display: none;" class="dl-parent"></div>

---------------------------------

 

こんな感じです。

ようは、phpから取得したcsvデータをhtmlに埋め込みダウンロードさせてます