【誰か】jQueryのここがわからない【助けて】at TECH
【誰か】jQueryのここがわからない【助けて】 - 暇つぶし2ch250:デフォルトの名無しさん
10/09/06 12:06:18
selectedindex

251:デフォルトの名無しさん
10/09/09 22:41:04
fadeInしながらslideDownって出来ないの?

252:デフォルトの名無しさん
10/09/10 03:58:31
できる

253:デフォルトの名無しさん
10/09/13 21:31:51
リンクをクリックしたらイベントっていう風に記述してるんだが、クリックするたびに表示が先頭に戻ってしまう。
なんとかならないの?

254:デフォルトの名無しさん
10/09/13 22:28:44
ソース貼れ

255:デフォルトの名無しさん
10/09/14 00:23:57
>>253
多分 href="#" となってるものにイベント貼ってるだろ

$('a').click(function(e){
e.preventDefault(); // ← これでいけるはず

256:デフォルトの名無しさん
10/09/16 16:32:20
URLリンク(jqueryfordesigners.com)
これ設置したら画像がやたら拡大表示されるんだけど、なぜ?

257:デフォルトの名無しさん
10/09/16 18:22:09
>>256
「BBC Radio 1 Zoom Tabs」って名前で拡大表示が目的のプログラムなんだから、
画像が大きく表示されて当然じゃね?

大きさが気に入らないのなら、初期化時の拡大率の値を減らせば縮むはず。
zoomtabs(15);
(省略時は、引数が10の指定と同じ)

「fullView」と「zoomView」の宣言の中身を変えればもっと細かく調整できるが、
「em」で相対指定してるから、大きくなりやすいのかもな。

258:デフォルトの名無しさん
10/09/17 09:21:48
>>257
ありがとう!
やっぱり拡大がデフォルトなのか…。
ちゃんと自分でスクリプト読めるように勉強するわ。

259:デフォルトの名無しさん
10/09/18 11:35:49
1つのdatepickerで2つ日付選択して範囲選択させたいのですがそういうモードってないですか?
どこかのサイトでdatepickerでやってるの見たんですけどどこだったかわからなくなってしまって…

260:248
10/09/20 18:38:47
>>259
人に教えられるほどの知識はありませんが・・・。
>>248を少し変えれば動きませんか?

具体的には、範囲の開始日を入れるinputをα、終了日を入れるinputをβとして、(4)を
 4-a 一回目のピックアップだったら(αとβが両方とも未入力だったら)ピックアップした日付をαにいれてそのまま
 4-b 二回目のピックアップだったら(αに入っていてβが未入力だったら)ピックアップした日付をβにいれて自分をhide
という感じではどうでしょう? 実験はしていないので、もし動かなかったらゴメンナサイ(汗

261:デフォルトの名無しさん
10/09/20 20:29:18
要素をn個づつwrapする方法が分かる方いらっしゃいますか?
例えば
<p>text1</p>
<p>text2</p>
<p>text3</p>
<p>text4</p>

<div>
<p>text1</p>
<p>text2</p>
</div>
<div>
<p>text3</p>
<p>text4</p>
</div>
としたいです。
$("p:nth-child(2n),p:nth-child(2n-1)").wrapAll("<div />");
等と書いてみましたが、無理でした。
偉い人、よろしければご教授下さい。お願いします。

262:デフォルトの名無しさん
10/09/20 22:43:03
マルチするなら、先に質問した所にその旨書いとけよ

263:デフォルトの名無しさん
10/09/21 05:59:38
>>260
datepickerを先に作っておくと表示させたときにレイアウトがずれそうなんで
inputに設定して1回目選択で今日の日付と選択した日付の文字列をYY/MM/DD - YY/MM/DDのように生成
2回目以降は1つ前に選択した日付との文字列を生成する感じでやってるんですけど
1回ずつ消えるのが見ずらいのでどこかの解説サイトのようなところで1回のポップアップで2回選択していたのを見て
datepickerの設定でなんとかselectみたいなのをtrueにするだけでできるようだったので設定変えるだけでできるのかと思い質問させていただきました。


264:248
10/09/22 00:27:26
>>263
カラッポのDIVでずれちゃうようなタイトなレイアウトだと、確かに難しいかもしれませんね。
そういう話になってしまうと「本家のリファレンスを参照」としかいえません。
パっと見ではちょっとムリそうですが・・・お役に立てず申し訳ありません。

265:デフォルトの名無しさん
10/09/23 00:47:07
IE8, Firefoxで動作する、時刻入力補助のjQueryを探しています。
jquery.timepickr.js
が良さそうなのですが、IE8では動作しませんでした。

また、
URLリンク(jsajax.com)
にあるものもjquery-1.4.2ではレイアウトが崩れ、使えませんでした。

時刻の入力補助で良いものがありましたら教えていただけないでしょうか?

266:デフォルトの名無しさん
10/09/23 00:58:56
jquery.timepickr.js
が良さそうです

267:265
10/09/23 02:24:39
>>266
先ほど確認したら jquery.timepickr.js はデモサイトでIE8でも動いていていました(なんでだ?)
jquery.timepickr.js を導入しようと思い

URLリンク(code.google.com)

を参考にローカルでトライしてみたのですが、レイアウトがズタズタになります。

ダウンロードしたアーカイブ中のどのjs/cssを具体的に使用すれば正常に
デモのように動くかどなたかご存知ないでしょうか?

268:デフォルトの名無しさん
10/09/23 02:28:21
Report a bug

Please use the project's bug tracker to report bugs, also check if the bug is not already reported.

To report a bug, click on New issue and fill up the form. Don't forget to specify your OS and Browser (vendor and version). Finally, add ui-timepickr in labels.

269:デフォルトの名無しさん
10/09/30 11:59:37
jQuery Alert Dialogプラグインを、
jQuery uiのDialogから呼ぶと、一瞬表示されて
すぐ次の処理に移ってしまうんだな。。。
これは困った。


270:デフォルトの名無しさん
10/10/04 02:11:53
jQuery + IE の select での change イベントの不具合って有名なんかな?
いっつもこれだけjQueryつかえずonchange使って回避してるけど、
いい加減面倒になってきた(´・ω・`)

271:デフォルトの名無しさん
10/10/06 03:35:52
>>270
1.4.2だとカーソルキーで変更時、changeイベント効かないようですね
URLリンク(d.hatena.ne.jp)

272:デフォルトの名無しさん
10/10/13 19:30:18
下記のようなコードを書いて、selectの項目を削除した後の内容を
取得してalertを出しているのですが、削除結果が正しく反映されません。
どこが間違っているのでしょうか?
<script type="text/javascript" src="lib/jquery-1.4.2.min.js"></script>
<body>
<select id="items" size="8">
<option value="0">Item0</option>
<option value="1">Item1</option>
<option value="2">Item2</option>
<option value="3">Item3</option>
<option value="4">Item4</option>
<option value="5">Item5</option>
</select>
<button id="del_item" onclick="delItem();">[-]</button>
</body>
<script type="text/javascript">
function delItem(){
$("#items option:selected").remove();
var itemLength = $("#items").children().length;
var valIdx = 0;
var str;
for (var i = 0; i < itemLength; i++) {
var item = $("#items").children("[value=" + valIdx + "]").text();
if (item !== "undefined") {
str += valIdx + " : " + item + "\n";
}
valIdx++;
}
alert(str);
}
</script>

273:デフォルトの名無しさん
10/10/13 21:44:08
まさかIEじゃなかろうな

274:デフォルトの名無しさん
10/10/13 22:05:08
firefoxです

275:デフォルトの名無しさん
10/10/14 09:40:10
jQueryの、日本ユーザ向けのフォーラムってないよね。
2chだとコードがネストされてなくて読みづらいから、
誰か作ってちょーだい(=´∀`=人)

276:デフォルトの名無しさん
10/10/14 10:41:54
>>272
"[value=" + valIdx + "]"
ではなく、
'option:eq(' + i + ')'
としてみては?

↓に詳細を書いています。
URLリンク(d.hatena.ne.jp)

277:デフォルトの名無しさん
10/10/14 11:07:54
>272 optionを削除してもvalueは詰められないって分かってる?

278:272
10/10/14 11:56:33
>>276>>277
アドバイスありがとうございます。
option:eq使って、思った通りの処理ができました。
value値も、eq使って再構成できました。


279:デフォルトの名無しさん
10/10/21 15:21:34
すでに登録されているファンクションを取り出して実行したいと思い、
まず以下の2方法でファンクション取得を試みましたが、undefineになってしまいました。
ファンクション取得は出来ないのでしょうか?

jQuery("#save").attr("onclick")
jQuery("#save").attr("click")

280:デフォルトの名無しさん
10/10/21 15:46:29
jQuery("#save").click();

とか?

281:デフォルトの名無しさん
10/10/21 17:48:48
半分寝てましたw

$("#save").click();

これでクリックイベントが起きるので、それに関連付けたファンクションが
定義されていれば、そのファンクションが実行されると思います。

282:デフォルトの名無しさん
10/10/21 18:00:56
$("#save").click( function(){
 alert("クリックされますた");
});

もしくは、

$("#save").bind("click", function(){
 alert("クリックされますた");
});


283:デフォルトの名無しさん
10/10/22 01:08:51
モバイル用がリリースされたね

284:デフォルトの名無しさん
10/10/22 12:03:13
<div id="hoge">
 <div id="hage">
   <div id="moge">
     ハゲ!
   </div>
 </div>
</div>

こんなHTMLの、mogeの部分のテキストを、
#hogeの下の#hageの下の#mogeのtext
といった意味でセレクタを指定するには、
どうすればいいのん?



285:デフォルトの名無しさん
10/10/22 13:14:57
>>284
そのまま順に子供を選択していけばいいよ。

286:デフォルトの名無しさん
10/10/22 23:18:35
$('#hoge > div > div').text();
っていう書き方を知りたかったんじゃない?

287:デフォルトの名無しさん
10/10/22 23:40:38
$('#hoge > #hage > #moge').text();

って書ければ完璧なんだけど


288:デフォルトの名無しさん
10/10/23 00:09:34
>>287
それで問題なくできるよ

289:デフォルトの名無しさん
10/10/23 00:31:38
>>287
いや、それなら $('#moge') だけでいいじゃん。

290:デフォルトの名無しさん
10/10/23 00:36:18
それだと hoge hage に囲まれていない moge まで見つかってしまう

291:デフォルトの名無しさん
10/10/23 00:41:29
>>290
HTMLを勉強しなおせ
IDの値が重複することはあってはならない

292:デフォルトの名無しさん
10/10/23 00:45:03
>#hogeの下の#hageの下の#mogeのtextといった意味で

これは意味のあることなの?

293:デフォルトの名無しさん
10/10/23 02:04:37
>>291
> HTMLを勉強しなおせ
> IDの値が重複することはあってはならない

まああえて擁護すれば、複数のページに同じjsを当ててて
このページではdiv#hage>div#hoge>div#mogeがあるけど
別のページではdiv#hageの内部にはないので、そのときは
jqueryを効かせたくない、というパターンはあるのであろう


294:デフォルトの名無しさん
10/10/23 10:04:35
jQuery UIのダイアログを1つのHTML内に複数入れて使うときとかは、
そういう使い方したいときはあるな。

DIV要素の親子関係でIDを見た場合は重複してないけど、
子要素だけで見たら、複数のダイアログでIDの重複が存在するような場合。
親子セットなら重複していないという考え方でセレクタを指定したいんだろ。

確かにHTMLの仕様的にはよろしくないんだろうが、
業務としてWebアプリとか組んでる場合は、生産性とか保守性を考慮して
そういう実装にしたいケースは容易に想定できる。


295:デフォルトの名無しさん
10/10/23 20:53:31
>>294
例外を許容する事で、idセレクタ自体が意味を成さなくなる事の方が生産性や保守性に影響が出るんじゃね?

動的な親子関係を考慮するような場合は、
無理にセレクタで解決せず、jQueryのTraversing機能を使えばいい。
どうしてもセレクタだけで実装したいなら、id以外の属性を使うなりすればいい。

296:デフォルトの名無しさん
10/10/25 04:33:13
$("[id=hoge] > [id=hoge] > [id=moge]")
でどうでしょう?
teeda とか使ってると必要なケースもあるでしょう

297:デフォルトの名無しさん
10/10/25 06:32:55
>>296
だからなぜ id属性 を使うんだw
classなりrelなり、適当な属性作るなりしなよ。

298:デフォルトの名無しさん
10/10/25 11:58:48
構造に触れなくて実装側で吸収しなきゃいけないことなんて
いくらでもあるやないですか…。

299:デフォルトの名無しさん
10/10/25 12:22:53
そうそう、分業体制で短納期の仕事してると、
もう保守性とかいってらんない。
できるだけメンテしやすいようには心掛けるけど、
プロジェクトメンバーが1人抜け2人抜けしていくとね・・・


300:デフォルトの名無しさん
10/10/25 15:22:49
JSは弄れてHTMLは弄れない状況ってそうそう無いだろう
idをclassや別属性に置換えるのってそんな難しいか?

最低限の仕様も守れないのに保守性とか言われましても・・・
そりゃ馬鹿らしくなってスキルある人から辞めてくわw

301:デフォルトの名無しさん
10/10/25 19:09:07
300は、仕事でWeb開発を
やったことない人に見える

302:デフォルトの名無しさん
10/10/25 19:14:52
あれだろ、F1サーキットのアスファルトやるような業者が 駐車場のアスファルト業者に文句言ってるようなもんだ。
いいんだよ、ほっとけば。 そういうとこは、やっすい金額でへこへこ作ってる底辺の状況など想像もできないだろう。

303:デフォルトの名無しさん
10/10/25 19:28:58
>>302
こいつマジで頭悪いな。
そもそも自由でないことが問題なのに、もっと良くない例を持ち出して
そっちよりマシだから我慢しろとか、全くお門違いの指摘だね。
上下の差こそあれ悪いものは悪いんだよ。

304:デフォルトの名無しさん
10/10/25 19:30:17
そして煽り耐性すらないと・・・しかもそんなこと言ってないこと曲解w

305:デフォルトの名無しさん
10/10/25 20:59:04
どう考えてもid属性重複させちゃうような突貫工事しちゃう方がF1サーキットだろw

専門学校生でも理解できるような仕様エラーなのに、仕方無いで片付けた挙げ句に
生産性とか保守性とか言い出しちゃうとかもうね・・・

ブラック開発現場に洗脳されすぎじゃね?

306:デフォルトの名無しさん
10/10/25 21:28:55
世の中の中小Web開発系企業は大半がブラックだろ。
財閥系とか総研系にお勤めのお方は、
仕様を厳密に確認する余裕があってうらやましい限りですな。


307:デフォルトの名無しさん
10/10/25 22:05:18
言いたいことは解る。
数人~十数人規模の中小企業を何社か渡り歩いたが、
そこまでレベルの低い現場は見たことないな・・・専門学校生でも雇ってるの?
もしかして開発会社じゃなくて、火消し専門の運営会社なんじゃね?

308:デフォルトの名無しさん
10/10/25 22:10:53
POSTとGETの違いがわかりません><
絶対パスと相対パスがわかりません><
文字コードがわかりません><
CSSって何ですか!?><
id属性は重複しちゃいけないんですか!?><
jQueryいれれば全部解決なんです?><

え?常識?何いってるんですか、そんな厳密な仕様調べる余裕普通はないです><;;;

309:デフォルトの名無しさん
10/10/25 23:39:50
>>307
良い環境ばかり渡り歩いたんだね。
テラウラヤマシス

世間には、ブラックばかりを渡り歩く
悲しい人間もいることを、
時には思い出してやってください。。。
今のご時世、仕事選んでなんかいられないの。。。orz


310:デフォルトの名無しさん
10/10/27 09:55:03
ブラック自慢乙

311:デフォルトの名無しさん
10/10/27 12:44:53
ブラックしか行けない人ってのは、自分のスキルが無い事を自覚した方がいい・・・

312:デフォルトの名無しさん
10/10/27 12:51:15
そっすね

313:デフォルトの名無しさん
10/10/27 14:10:24
いやぁ、照れるじゃないか。

314:デフォルトの名無しさん
10/10/27 21:42:09
each(function(){
...
});
みたいなコード3個以上書いてると、
Rubyのブロックがセンスのいい構文だったんだなって気づく

315:デフォルトの名無しさん
10/10/27 23:11:42
eachって、遅いんでしょ?
forのほうが早いって、死んだ婆ちゃんが言ってた。

316:デフォルトの名無しさん
10/10/27 23:49:51
jQuery.each の事言ってるんじゃないの?forとは使う場面が異なる気が・・・

317:デフォルトの名無しさん
10/10/28 10:10:09
>>314
そして値とインデックスを受けとろうと
function(value, index) と書いてハマる罠。

318:デフォルトの名無しさん
10/10/29 11:58:16
jqplot で series に指定したライン毎のラベルを、
highlighter のときのポップアップに含めることはできないでしょうか?

series: [{label: "A"}, {label: "B"}],
highlighter: {formatString: "%L"}, ←のようにしたら "A" になるみたいなのが理想

319:デフォルトの名無しさん
10/10/29 12:08:16
もの凄く初心者的な質問で申し訳ないんですが、
変数の使い方で、

 var hoge_html = "<div id='hoge'>HAGE!!</div>";
 var $hoge_html = $("<div id='hoge'>HAGE!!</div>");

みたいに、「$」を付けて宣言したり値を入れたりする
ケースがあるのですが、どういう用途で$を付けるんでしょう?

「jQuery $」とかでググっても、Google先生は記号をうまく
検索してくれないみたいで、毎日悶々と生活しています。
よろしくお願いいたします。


320:デフォルトの名無しさん
10/10/29 12:28:04
$ は jQuery のエイリアス
$() で jQuery() と一緒
関数を読んでいる

321:デフォルトの名無しさん
10/10/29 12:32:11
頭が悪いんですね、可哀想。

322:デフォルトの名無しさん
10/10/29 12:32:48
変数名に$をつけるのは、それがjQueryオブジェクトだと認識しやすくする為。


323:デフォルトの名無しさん
10/10/29 14:45:25
jQueryとPHPでプログラム作成中で
独学で基本的なところもわかってない俺だが誰か教えて欲しい


$(function(){
$("#inside1").click(function(){
var x=$(this).text();
$("#outside").html("<input size=\"15\" type=\"text\" id=\"inside2\" name=\"in_text\" value=\"" + x + "\"\"><input type=\"button\" id=\"change\" name=\"ch_button\" value=\"change\">");
});

$("#change").click(function(){
var y=$("inside2").value();
$("#outside").html("<span id=\"inside1\">" + y + "</span>");
});
});

<div id="outside"><span id="inside1">default text [click]</span></div><br>


こんな感じで、テキストをクリックしたらテキストボックスに切り替わって編集
そのあとchangeボタンで編集後のテキストで元のテキスト状態に戻る
っていうのをやりたいんだが、

$(XXX).html で埋め込んだHTMLの中にjQueryを埋め込んでも動作しなくて
入れ子状態?とでも言えばいいのだろうか、
埋め込んだ先で埋め込む前のjQueryの記述や要素を取得することができない
っていうのはjQuery側の仕様なのかなぁ

テキスト部分をクリックしたら簡単に編集ができる っていう仕組みを
プログラムに取り入れたいのが目的で、難儀してる
仕様としてこんな方法があるとか、何かいい方法ないだろうか?

324:デフォルトの名無しさん
10/10/29 20:00:20
>$(XXX).html で埋め込んだHTMLの中にjQueryを埋め込んでも動作しなくて
>入れ子状態?とでも言えばいいのだろうか、

の意味がよくわらかんのだが、$(function() { ... });が実行されないという事?


325:デフォルトの名無しさん
10/10/29 20:12:23
live使えば? idが変わっても動くかどうかわからないけど。

326:319
10/10/29 20:47:35
>>320>>322
ありがとうございます。

いまいち理解できません。。。
jQueryの動作原理をよく理解せずに使ってることが
そもそもダメっぽいです。
基礎の基礎をやりなおしてきます。

327:デフォルトの名無しさん
10/10/29 22:48:49
>>323
<div class="editable">this is editable</div><br />
<div class="editable">this is editable</div><br />
<script>
$(function(){
var editableFunc = function()
{
var $editable = $(this);
$editable
.unbind('click', editableFunc)
.html('<input type="text" value="' + $(this).text() + '" /><button type="button">決定</button>')
.find('button').click(function(e){
e.stopImmediatePropagation();
$editable
.html($editable.find('input:first').val())
.click(editableFunc)
})
}

$('.editable').click(editableFunc);
})
</script>


多分、$('#change').click()設定時に#changeが存在しないのがいけないのかと。

328:デフォルトの名無しさん
10/10/30 13:18:09
>>322
なるほど!

329:デフォルトの名無しさん
10/10/30 15:04:34
>変数名に$をつけるのは、それがjQueryオブジェクトだと認識しやすくする為。

認識「しやすい」っていうのは抽象的というか曖昧だね。
認識「しにくい」場合ってあるの?
prototypeとか他のライブラリと被ったりする場合?


330:デフォルトの名無しさん
10/10/30 15:13:06
人間側の認識の話じゃない?

331:デフォルトの名無しさん
10/10/30 15:14:55
なるほど。

332:デフォルトの名無しさん
10/10/30 15:16:18
JavaScriptの仕様的には、変数名の先頭に
$付ける場合と付けない場合とで、
どういう違いがあるんだろう?


333:デフォルトの名無しさん
10/10/30 15:21:53
>>332
ない
変数名なんて別に日本語でもいいんだよ

334:デフォルトの名無しさん
10/10/30 15:34:10
Uploadifyで画面遷移なしにファイルがアップロードできるっていうから飛びついたのですが、詰まりました・・・

アップロードしたファイルが画像かどうかをチェックして、画像じゃなかったらアップロードをキャンセルしようと思ったのですが、キャンセルされずにそのままアップロードされてしまいます

<script type="text/javascript">
$(document).ready(function() {
$("#uploadify").uploadify({
'uploader' : 'scripts/uploadify.swf',
'script' : 'scripts/uploadify.php',
'cancelImg' : 'cancel.png',
'folder' : 'uploads',
'queueID' : 'fileQueue',
'auto' : true,
'onSelect' : function(event, queueID, fileObj) {
rObj = ".jpg$";
if (fileObj.name.match(rObj)) {
alert("match");
}else{
alert("not match");
uploadifyCancel(queueID);
} } } ); });
</script>
<body>
<div id="fileQueue"></div>
<input type="file" name="uploadify" id="uploadify" />
<p><a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">Cancel All Uploads</a></p>
</body>

こんな感じで書いてます
uploadifyCencel関数にキャンセルしたいファイルのqueueIDを渡せばよいとあったのでその通りにしてみたのですが・・・
自分1人ではどうしようもない状態です。よろしくお願いします

335:デフォルトの名無しさん
10/10/30 16:17:27
>>334
rObj = ".jpg$"; にマッチしてねーんじゃね?
rObj = /jpg$/; と正規表現で書けばいーんじゃね?

336:デフォルトの名無しさん
10/10/30 16:27:01
>>335
いや、ちゃんとマッチングはしています
それはalertで確認していますので

337:デフォルトの名無しさん
10/10/30 16:31:19
>>336
uploadifyCancelはグローバルスコープの関数なん?

338:デフォルトの名無しさん
10/10/30 17:14:55
>>337
うっ、グローバルスコープかどうかは正直分からないです・・・
呼び出せていない可能性を忘れていました
調べても出てこないし、Uploadifyを使うのってマイナーなのかな・・・


339:デフォルトの名無しさん
10/10/30 17:28:26
>>338
uploadifyCancelでググった限りだけど
jQuery('#uploadify').uploadifyCancel(queueID); と書くっぽいね。

340:デフォルトの名無しさん
10/10/30 17:31:32
uploadify.phpは脆弱すぎるので、使わない方がええな・・・

341:デフォルトの名無しさん
10/10/30 18:01:04
>>339
おぉ、できました。ありがとうございます!!
よく見たら、確かにそう書いてあるのがありましたね・・・

>>340
まじすか・・・できたと思ったら・・・
うーん、他の方法も探してみることにします

342:デフォルトの名無しさん
10/10/30 23:51:03
>>341
いや、phpがしょぼいというか恐らくサンプル的なコードなだけで、
jsやswfはしっかりしてると思うよ。

343:デフォルトの名無しさん
10/11/04 12:27:19
>>325
>>327
遅レスだが大変参考になりました
ありがとうございます

>>324
基礎知識がないからかうまく説明できないのだけど
サンプルで書いたコードを実行しても
$("#change").click(function(){
の部分が実行されなくて困ってました
わかりづらくてスマソ

344:デフォルトの名無しさん
10/11/05 14:00:17
$はjQueryの略ですけど、$$って何ですか?

345:デフォルトの名無しさん
10/11/05 15:06:31
>>344
それprototype.jsとかじゃないの?jQueryは$とjQueryしかグローバル汚さないはずだけど

346:デフォルトの名無しさん
10/11/13 12:11:21
.fadeInとslideDownの効果を同時に使うって出来ますか?
スライドしながらボワっと現れるようにしたい

$("<div class = 'class'>"***"</div>").appendTo('#***').hide().fadeIn("slow").slideDown("slow")
だと、フェードインはするけどスライドしない

fadeInとslideDownの並びを逆にすると
スライドするけどフェードインしないってことになってしまいます


347:デフォルトの名無しさん
10/11/13 22:11:30
>>346
.animate()

348:デフォルトの名無しさん
10/11/14 01:56:34
このスレもっと活性化して欲しいage

349:デフォルトの名無しさん
10/11/14 15:16:55
>>347
出来た!ありがとうございました

350:デフォルトの名無しさん
10/11/15 13:50:25
find関数の使い方について。

 var $tmp = $('<input id="foo" value="foo_value"/>foo_text');
 var fooValue = $tmp.find("#foo").val();

これだと、fooValueの値はundefinedになるんですが、

 var $tmp = $('<div><input id="foo" value="foo_value"/>foo_text</div>');
 var fooValue = $tmp.find("#foo").val();

DIV要素で囲んだこっちは、ちゃんと"foo_value"が取得できます。
最初の、$tmpの書き方で、findして対象のval()を取る方法って
ありますか?


351:デフォルトの名無しさん
10/11/15 14:35:35
どういう目的でfindを使おうとしてるのかわからない。
普通にこれじゃダメなの?

var fooValue = $('input#foo').val();

352:デフォルトの名無しさん
10/11/16 05:42:33
>>351
単純に上手く行かなかったから知りたいだけじゃない?

>>350
バージョン何?jQuery1.4.3と1.4.4+Mac Firefox3.5、chrome9でとりあえず試してみたけど上手くいったよ?

353:1/2
10/11/16 22:06:03
jquery+flexigridで表を作成しております。

{
page: 1,
total: 5,
row: [
{id:'1',cell:['1','normal','テスト1','2009/07/07 15:32:27']},
{id:'2',cell:['2','sad','テスト2','2009/07/06 21:04:30']},
{id:'3',cell:['3','smile','テスト3','2009/07/06 13:18:29']},
{id:'4',cell:['4','smile','テスト4','2009/07/05 19:46:41']},
{id:'5',cell:['5','sad','テスト5','2009/07/05 15:25:15']}
]
}

この形のJSONを読み込んだところ、表の外枠は表示されるのですが中身のデータが表示されません。


354:1/2
10/11/16 22:07:41
ちなみにソースは
$(function(){
$("#flex1").flexigrid({
url: 'post.json',
dataType: 'json',
colModel : [
{display: 'ID', name : 'id', width : 40, sortable : true, align: 'center'},
{display: '気分', name : 'feel', width : 40, sortable : false, align: 'center'},
{display: '件名', name : 'name', width : 200, sortable : true, align: 'left'},
{display: '作成日', name : 'date', width : 120, sortable : true, align: 'left'},
{display: 'リンク', name : 'link', width : 80, sortable : false, align: 'center'}
],
width: 600,
height: 'auto'
});
});
です。
Firebugで見たところちゃんとJSONとしてファイルを読み込んでいます。

355:デフォルトの名無しさん
10/11/17 10:59:31
'page'
'total'
'row'
かな?

356:デフォルトの名無しさん
10/11/17 11:04:42
ごめん、上の忘れて

調べてみます


357:デフォルトの名無しさん
10/11/17 12:42:27
flexigrid.jsの414行目

data.rows,



data.row,

にしたら表示されましたが他が原因だったらゴメン

358:デフォルトの名無しさん
10/11/18 08:30:14
>>354
そもそも、これJSON形式じゃなくね?

359:デフォルトの名無しさん
10/11/18 08:44:21
JSONは、>>353のほうでしょ

360:デフォルトの名無しさん
10/11/18 08:50:27
>>359
おっと、アンカー間違えた。>>353

361:デフォルトの名無しさん
10/11/18 09:36:55
こっちの勉強不足かもしらんが、JSONに見える

そうでない点を教えてくれるとありがたい

362:デフォルトの名無しさん
10/11/18 09:49:06
形式としては JSON ということで間違いないけど
jQuery が期待している JSON ではないということだ

363:デフォルトの名無しさん
10/11/18 09:52:07
>>361
>>353はあきらかにJSONじゃない

こっちが正しいJSON
{
"page": 1,
"total": 5,
"row": [
{"id":"1","cell":["1","normal","テスト1","2009/07/07 15:32:27"]},
{"id":"2","cell":["2","sad","テスト2","2009/07/06 21:04:30"]},
{"id":"3","cell":["3","smile","テスト3","2009/07/06 13:18:29"]},
{"id":"4","cell":["4","smile","テスト4","2009/07/05 19:46:41"]},
{"id":"5","cell":["5","sad","テスト5","2009/07/05 15:25:15"]}
]
}

364:デフォルトの名無しさん
10/11/26 17:03:56
:contains(text)に近いフィルタで、
正規表現にマッチするのを含むフィルタはありますでしょうか?

365:デフォルトの名無しさん
10/11/27 01:48:51
jquery.ajaxでの質問なのですが、非同期通信のためか、例えば以下のようなコードだと
通信が終わる前に次の関数(makeData)が呼び出されてしまいます。

通信完了を待って次の関数に移るためには同期通信にするしかないのでしょうか。
というのも、同期通信(asyncをfalseにする)と通信中は画面がフリーズしたかのようになってしまうため、
できれば非同期通信にしたいというのが希望です。

function test(){
getData();
makeData();
}

function getData(){
jQuery.ajax({
  (略)
});
}

function makeData(){
//通信が終わる前にこっちが呼び出される
}

366:デフォルトの名無しさん
10/11/27 03:35:04
コールバックかメソッドチェーンすればよいのでは?

367:デフォルトの名無しさん
10/11/27 13:12:38
makeData(); を
jQuery.ajax({
  (略)
ここに通信完了後の処理を書く場所がある
});
の中に書く

368:デフォルトの名無しさん
10/11/28 02:40:07
はじめまして。ご教示願いたいです。
appendを使ってHTMLにタグを挿入した後に、findを使うとappendで生成されたタグが検索対象に含まれません。
どの様にすればappendしたタグをfindの検索対象に含める事ができますかね。
よろしくお願い致します。

369:デフォルトの名無しさん
10/11/28 07:09:48
append

370:デフォルトの名無しさん
10/11/28 07:12:19
appendを使おうが何を使おうが関係なく後から作成された要素だからといってfndで検索できないことはありません。
動かないコードをさらせば?

371:デフォルトの名無しさん
10/11/28 17:50:44
iframeを使った時の挙動がいまいち解らないので質問させてください
以下のようなソースを用いて、iframe内のイベントをtopで制御したいと思って書いていたのですが、hogeが呼ばれません。
何故なのでしょうか
ヒント、参考資料などがあれば是非教えていただきたいです。

/a.html
  <script type="text/javascript" src="/lib/js/jquery-1.4.2.min.js" charset="UTF-8"></script>
  <script type="text/javascript" src="b.js" charset="UTF-8"></script>
  <iframe id="mainframe" width=100% height=100% src="/frame/c.html"></iframe>';

b.js
  $("#mainframe").ready(function ()){
    $("#mainframe").contents().live("click",hoge);
  }
  function hoge(e){}

/frame/c.html
  <script type="text/javascript" src="/lib/js/jquery-1.4.2.min.js" charset="UTF-8"></script>
  <script type="text/javascript" src="/frame/d.js" charset="UTF-8"></script>



372:デフォルトの名無しさん
10/11/28 22:42:21
jqueryってパフォーマンス悪い?


373:デフォルトの名無しさん
10/11/29 03:43:22
もともとパフォーマンスを考えたものではないだろう
とはいっても、そんなに悪くはない
悪いのはだいたい使い方の方だ

374:デフォルトの名無しさん
10/12/05 16:46:08
2種類のクラス、例えばabcとdefの両方を持つ要素の選択は
下記方法が考えられますが、それよりシンプルな書き方はありますでしょうか?
$('[class*=abc][class*=def]')

375:デフォルトの名無しさん
10/12/05 21:18:33
>>374
なぜそんな面倒くさいセレクタを使うんだ…
$('.abc.def')

376:デフォルトの名無しさん
10/12/05 21:36:26
>>375
だって、リファレンスで見つけられなかったんだもん

377:デフォルトの名無しさん
10/12/05 23:05:25
IE9で動くの?


378:デフォルトの名無しさん
10/12/05 23:33:24
IE6以上から動きます。

2001年という10年前のブラウザでも
JQueryがまともに動くのだからすごいとしか
言いようがありません。

379:デフォルトの名無しさん
10/12/05 23:37:41
IE6ってSP5くらいまで逝ってたんだっけ?

380:デフォルトの名無しさん
10/12/06 00:37:09
>>376
どこを見ているのか知らないが、クラスセレクタの項に書いてある
URLリンク(hp.vector.co.jp)

381:デフォルトの名無しさん
10/12/06 06:32:26
>>380
なるほど、jQueryでなく、スタイルシートの仕様に絡んでいるんですね。
参考になります。

382:デフォルトの名無しさん
10/12/07 07:06:09
>>381
> Borrowing from CSS 1-3, and then adding its own, jQuery offers a powerful set of tools for matching a set of elements in a document.
URLリンク(api.jquery.com)

383:デフォルトの名無しさん
10/12/07 07:08:45
リファレンスのサンプルにもあるなw
URLリンク(api.jquery.com)

384:デフォルトの名無しさん
10/12/12 01:49:53
jQueryで追加したHTML要素を、すべて元に戻すAPIってないですか。
1つずつ.remove()で消す、追加するHTMLに共通のclassをつけておいて.remove()、ってのが面倒で…。

385:デフォルトの名無しさん
10/12/12 03:14:21
reload

386:デフォルトの名無しさん
10/12/12 10:13:10
元々ある全ての要素にdeaultってclass付けておいて:notでremove()

387:デフォルトの名無しさん
10/12/12 12:47:27
>>384
自分でAPIを拡張するのが手っ取り早い。
DOMノードを挿入するAPIを拡張して、挿入したノードを配列に格納しておけばいいだろう。

388:デフォルトの名無しさん
10/12/13 23:18:59
$(document).ready(function() { ... }

が二回呼ばれているようなのだけど
jQueryでタグ追加とかしてもそんな挙動するわけないですよね

389:デフォルトの名無しさん
10/12/13 23:39:49
タグ追加の意味がわからんが
readyを何回書いても一回しか実行されないのは確かだ

390:デフォルトの名無しさん
10/12/14 13:26:06
document が2つあるとか

391:デフォルトの名無しさん
10/12/15 04:43:08
jquery-opacity-rollover.js
というプラグインを使っています
既存のhttpページで問題なく使えていたものが
httpsのページではエラーを吐いてしまいます

エラー内容は
})(jQuery);
となっている最終行で'jQuery'が未定義と言われます
他の読み込んでいるjsは全て消してみましたが解消せず

調べるとjQueryと$がエイリアスになっているらしいのですが
具体的に何のエイリアスになっているのでしょうか?
エイリアス元と置き換えたらエラー止まる…でしょうか?

392:デフォルトの名無しさん
10/12/15 06:53:51
$がjQueryのエイリアスなんじゃないの

393:デフォルトの名無しさん
10/12/15 07:46:20
>>391
googleのapi使ってjQuery呼んでないか?
ひょっとして。

394:デフォルトの名無しさん
10/12/15 10:53:10
>>391
> 既存のhttpページで問題なく使えていたものが
> httpsのページではエラーを吐いてしまいます

わかってるじゃん
関連ワードでググッてみれば

395:391
10/12/15 13:50:10
>>392
あ、そうなんですかー
となると最終行の})(jQuery); はjQueryって文字列を無名関数の引数にしてる?
わからん;;

>>393
確認しましたが自サーバにあげてあるjQuey呼んでいたので該当しなさそうです

>>394
https+jquery、SSL+jqueryでぐぐってみましたが…
関連ワードの選定がおかしい?

396:デフォルトの名無しさん
10/12/15 14:53:50
>他の読み込んでいるjsは全て消してみましたが解消せず

そりゃ消したら動く訳ないな

397:デフォルトの名無しさん
10/12/15 16:21:30
jquery-1.x.x.js も削除しているとか。

398:デフォルトの名無しさん
10/12/15 21:35:40
【C#, C♯, C#】 MonoMac 【MonoDevelop】
スレリンク(mac板)

詳しい奴、ちょっと↑きてくれ

399:デフォルトの名無しさん
10/12/16 01:31:33
>>391
httpのページではjQueryを読み込むscriptたぐあるけどhttpsのページではないってオチじゃないの?
jquery-opacity-rollover.jsの前にちゃんと読み込んでんの?

400:デフォルトの名無しさん
10/12/19 18:15:38
助けて誰か、誰か助けて
もうわけわからない、ぐぐってコピペしても動かない
もうだめだだめだだめだだめだ
ふぅ


scriptのsrcを入れ替えたいけれど、どう書けばいいのかわからんのです
誰か助けて
【javascript】
※.は2chの先頭半角除去回避
.<script>
.var videoId = 'sm1544885'
.var obj = $.get('URLリンク(ext.nicovideo.jp)' + videoId,null,function(data, stat)
.{
. $(function()
. {
. $('#title').html($('title', data).text())
. $('#player script').attr("src","aaaaa")
. })
.}, "xml");
.</script>

【html】
<div id="title"></div>
<div id="player"><script type="text/javascript" src="URLリンク(ext.nicovideo.jp)"></script></div>

401:デフォルトの名無しさん
10/12/19 18:16:32
先頭除去回避できなかった
死にたい

402:デフォルトの名無しさん
10/12/21 13:34:42
JSONファイルが複数あってそれぞれに時系列のデータなのですが

data01.json(ファイルの中身は2008年、2009年、2010年の果物の仕入れ推移)
data02.json(ファイルの中身は2008年、2009年、2010年の牛肉の仕入れ推移)
data03.json(ファイルの中身は2008年、2009年、2010年のパンの仕入れ推移)

たとえばどれかひとつのJSONファイルを読み込んでhtmlテーブルに書き出す、ことはできています。
($.getJSON() → $.each() で回してappend という処理をしています)


ここで質問ですが、これら複数のJSONファイルをマッシュ?して
ひとつのhtmlに書き出す、にはどうすればよいでしょうか?

ページ読み込み時→2008年、2009年、2010年の果物、牛肉、パンすべての仕入れ一覧テーブルを一括で表示

「果物」「牛肉」「パン」アンカーリンクのクリックで
果物のみ、牛肉のみ、パンのみのテーブル表示

「2008年」「2009年」「2010年」アンカーリンクのクリックで
その年だけのテーブル表示

よろしくお願いします。

403:デフォルトの名無しさん
10/12/21 14:09:05
>>402
appendしてhtmlに書き出してるのならそれをJSONファイル分やれば全部書かれると思うけど
それだとダメなの?

404:デフォルトの名無しさん
10/12/21 14:31:27
前半に書きましたが、それはできています。



405:デフォルトの名無しさん
10/12/21 14:34:47
ここで質問ですが、これら複数のJSONファイルをマッシュ?して
ひとつのhtmlに書き出す、にはどうすればよいでしょうか?

ひとつのテーブルに書き出す、です。説明が不足しており申し訳ありません。



406:デフォルトの名無しさん
10/12/21 15:22:03
実際のコード晒してみてくれないとイメージが付かないな。
普通にtbodyにappendしていけば一つのテーブルに書き出せると思うんだけど。

407:デフォルトの名無しさん
10/12/21 15:30:34
次スレweb板でよくね?

408:デフォルトの名無しさん
10/12/21 16:33:12
($.getJSON() → $.each() で回してappend という処理をしています)
このappend先を1つのtbody若しくはtbody毎に区切ってappendしていけばOKな話じゃないのか

409:402
10/12/21 18:12:52
>402 です。お世話になっております。

それぞれのJSONファイルは以下の情報が時系列で含まれています。(項目数は省略しています)

>data01.json(ファイルの中身は2008年、2009年、2010年の果物の仕入れ推移)

{
"title": "果物",
"items":[
{"year" : "2008","exifvolume" : [{"mon" : "3月","volume" : "224個"},{"mon" : "4月","volume" : "281個"}]},
{"year" : "2009","exifvolume" : [{"mon" : "2月", "volume" : "326個"},{"mon" : "7月", "volume" : "221個"}]}
]
}

これと同じ書式で、牛肉JSONファイル、パンJSONファイルが存在します。(続きます)

410:402
10/12/21 18:14:13
(JSONファイルは本当は改行して見やすい記述なのですが、改行が多すぎるという理由で書き込めなくてすみません)



411:402
10/12/21 18:20:19
それらのJSON 3ファイルの時系列を有効にしたままで、下記のような一括テーブルを生成したいというイメージです。

(これも改行が多すぎて駄目だそうなので詰めています。)
<table>
<!-- 2008年 -->
<tr><td colspan=3>2008</td></tr>
<tr><td rowspan=2>3月</td><td>果物</td><td>296個</td></tr><tr><td>牛肉</td><td>1120g</td></tr>
<tr><td rowspan=3>4月</td><td>果物</td><td>224個</td></tr><tr><td>牛肉</td><td>1320g</td></tr><tr><td>パン</td><td>551個</td></tr>
<tr><td rowspan=2>8月</td><td>果物</td><td>224個</td></tr><tr><td>パン</td><td>551個</td></tr>
<!-- 2009年 -->
<tr><td colspan=3>2009</td></tr>
<tr><td rowspan=3>2月</td><td>果物</td><td>328個</td></tr><tr><td>牛肉</td><td>1122g</td></tr><tr><td>パン</td><td>466個</td></tr>
<tr><td rowspan=2>7月</td><td>果物</td><td>529個</td></tr><tr><td>パン</td><td>216個</td></tr>
<!-- 2010年 -->
<tr><td colspan=3>2010</td></tr>
<tr><td rowspan=3>4月</td><td>果物</td><td>523個</td></tr><tr><td>牛肉</td><td>1626g</td></tr><tr><td>パン</td><td>562個</td></tr>
<tr><td rowspan=2>6月</td><td>牛肉</td><td>1176g</td></tr><tr><td>パン</td><td>363個</td></tr>
</table>


伝わりますでしょうか、、、

412:デフォルトの名無しさん
10/12/21 19:01:58
時系列の話ならjQueryっていうよりどうやってソートするかのアルゴリズムの話だなぁ
とか思いながら眺めてみたらテーブルの構造が思った以上に複雑で笑った

それ、自分の感覚だとテーブルの作り方が直感的じゃないんだけど、1つのテーブルの場合はどういう作り方してんの?
yearでtr作って、その後配列の要素分だけtr作るとか?
そういう作り方なら同じようにmonを見て、既に同じ月があればrowspanに+1とtrを追加で地道にやったらいいんじゃないかね
それかJSONを3つ取った時点で一旦マージしてから作るかかな

413:デフォルトの名無しさん
10/12/21 19:10:10
それならJSONデータをマージして1個の大きなデータ作ってから
表示させるのが一番楽じゃないかなぁ
tr追加時にクラスに果物か牛肉かパンの情報与えておけば後で弄りやすいし
CSSもかけて良いと思うけど


414:デフォルトの名無しさん
10/12/21 19:11:25
更新せずに書いたら同様のレスが既にあった

415:デフォルトの名無しさん
10/12/21 22:43:21
jCarouselLiteを使って

<script type=text/javascript src=path/to/jquery.js></script>
<script type=text/javascript src=path/to/jcarousellite.js></script>
<script type=text/javascript>
$(function() {
$(.carousel).jCarouselLite({
btnNext: .next,
btnPrev: .prev,
visible: 5
});
});
</script>

<div class=carousel>
<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
<li>ddd</li>
<li>eee</li>
<li>fff</li>
</ul>
</div>
<p><a class=next>次へ</a></p>
<p><a class=prev>前へ</a></p>


で、動くにはうごいたんですが、
続きます。

416:デフォルトの名無しさん
10/12/21 22:45:21
続き

仮に、下記のように、表示件数が設定した数より少なくなってしまった場合に
挙動がおかしくなってしまいます。

<div class=carousel>
<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
<li>ddd</li>
</ul>
</div>

<li>が一つしかないときなど、まったく表示されなくなってしまい困っています。
どなたか解決方法をご教授いただけると助かります。
例えば、<li>の要素数を取得して、ある一定の数以下では、実行しないなど。。。
よろしくお願いします。

417:デフォルトの名無しさん
10/12/21 22:56:01
>>415
自分でHTML書いてるのにvisibleの設定値より少なくなるってどんな状態だ?

418:デフォルトの名無しさん
10/12/21 23:05:50
>> 417
CMS使って、SNS見たいな感じのものをやりたくて。
その中の一部にカルーセルな機能を使いたいんです。
それぞれのユーザーごとにvisibleの設定を変えるのは面倒すぎるもので。。。

419:デフォルトの名無しさん
10/12/21 23:20:40
>>418
それならCMSで<ul>を作る時に一緒にvisibleの値を設定するのがいいと思うんだけど。
どうしてもJavaScriptでやりたいなら$('div.carousel > ul > li').lengthで値求めたらいいんじゃないかな

420:デフォルトの名無しさん
10/12/22 10:00:54
appendで思ったんだけど、生成されるhtmlってサーチエンジンから見るとどうなってんですか?

appendするんだから、ユーザーがそのページをロードしないと
コンテンツが存在しないわけじゃないですか?
サーチエンジンも、そこのロボットがページロードしてappendした内容をキャッシュするんでしょうか?

421:デフォルトの名無しさん
10/12/22 10:16:53
>>420
JavaScriptで生成される内容はクロール対象にならないから、
検索ボットに食わせたい内容ならJavaScriptでガリガリ書かない方がいいと思う
JavaScriptも解釈する検索ボットの話も出てるけどまだ現実的じゃないんじゃないかな
URLリンク(d.hatena.ne.jp)

422:デフォルトの名無しさん
10/12/22 10:36:58
ありがとうございます。なるほど。

クロール対象にならないってのはjavascript以外の動的コンテンツもですか??

例えばアマゾンのサイト内の商品のページってのは動的なコンテンツに見えますが
ググると上位に出て来ますよね。あれはどういうことなんですか?
自社内でいったん生成してキャッシュしてるのをクローラーに見せてるんでしょうか?


423:デフォルトの名無しさん
10/12/22 10:42:03
>例えばアマゾンのサイト内の商品のページってのは動的なコンテンツに見えますが

いや、商品名とかは普通に静的だろ・・・
まぁAmazonはCanonical URLとか小技使いまくってるけども

424:デフォルトの名無しさん
10/12/22 10:55:16
>>422の動的は多分PHPとかサーバーサイドでの動的って意味じゃないのかな・・・

425:デフォルトの名無しさん
10/12/22 12:06:19
スレチ気味ですみません

そうか。サーバー側で生成するものは動的なコンテンツでもクロールされるんですね。
アマゾンの検索結果ってあるじゃないですか。サイト内の検索窓にアーティスト名とかを入れて、関連商品がざーっと表示されますよね。
その「サイト内検索結果ページ」がグーグル上位(場合によっては1位)にあったりするのが???だったんです。

426:デフォルトの名無しさん
10/12/22 12:39:10
>>425
ブラウザでJavaScriptオフにした状態がクロールされると思えばいいよ

427:デフォルトの名無しさん
10/12/23 04:24:47
ASCII.jpの「40分で覚える!jQuery速習講座」
に載ってるアコーディオンパネルのサンプルコード
で、

$("+dd",this)

ってセレクタの記述が、jquery1.4.1だとうまく動くのに、
1.4.4だとうまく動かないのは、なぜ?

428:デフォルトの名無しさん
10/12/23 11:25:34
40分で書かれた本だから

429:デフォルトの名無しさん
10/12/23 15:01:09
なんだか珍しいセレクタの書き方だね。
よく分かんないけど下記のようにすれば確実だと思う。

if($(this).next('dd').css('display")=='none'){
$('dd').slideUp('slow');
$(this).next('dd').slideDown('slow');
}

$('+dd',this) の代わりに $(this).next('dd') を使ってる。

430:デフォルトの名無しさん
10/12/24 23:33:09
>>427
もう解決策は出てるけど挙動が気になって確認してみたが、
1.4.2から1.4.3にバージョンアップした際にcss周りの処理を
高速化した影響っぽい。

1.4.1だとセレクタを通しても中身が入るのに、1.4.4だとnullに
しかならないからサンプルが動かない。

デザイナーとの分業になってるとか、意図的にCSSのセレクタを
使いたい状況でもない限り、APIの方でアクセスした方が
将来的にも安心だろうな。


431:デフォルトの名無しさん
10/12/25 22:31:53
jQueryのプラグインの中を変更してるんだけど

fn.extend({
init: function
の中で
this.funcMoveLeft = function() { self.moveLeft(); }

とかやってるんだけどこれってどういう意味があるんでしょう?


432:デフォルトの名無しさん
10/12/25 22:49:06
それだけの情報じゃわからんだろw
もっとコード出すとかjQueryプラグインの名前出すとかしないと。
ただ、そのコード見るだけで判断すると単純にfuncMoveLeftってメソッドを定義してるだけだよね

433:デフォルトの名無しさん
10/12/25 22:51:19
>>431
その上に
var self = this
てのもあった

434:デフォルトの名無しさん
10/12/25 23:00:51
>>432
すいません。。
simplyScroll
URLリンク(logicbox.net)
っていうプラグインで
スライドショーの領域にhoverしたときにその中心とマウスの距離
流れる方向とスピードを変更する機能を追加しようとしてます。

でinitの処理内で
this.$container.mousemove(function(e){})
内でe.pageXとかは取得できるんですけど
その値をthis.o.speedに設定する方法が分かりません。
ひょっとしたらただのjavascriptのスコープの問題かもしれません。
分かりにくい説明ですいません

435:デフォルトの名無しさん
10/12/26 01:11:43
mousemove内のthisがsimplyScrollを見てないからじゃなくて?
下みたいな感じにしたらいけるんじゃないの?

var self = this;
this.$container.mousemove(function(e){
 // thisはdiv.simply-scroll-containerなのでselfでアクセス
 self.o.speed = 設定したい値
})


436:デフォルトの名無しさん
10/12/26 10:22:54
>>435
解決しました!
ありがとうございます。

437:デフォルトの名無しさん
10/12/26 11:00:27
すげー。

438:デフォルトの名無しさん
10/12/26 21:07:32
つーか、thisの扱いをどうするかなんて常識だろ。


439:デフォルトの名無しさん
10/12/29 01:49:13
リンクがクリックされたらjquery.loadで外部ページを読み込んでページの一部を書き換える処理を書いたのですが、
これに加えて、jquery.loadでのページ読み込みが完了したら元ページの一番上(スクロールバーが一番上にある状態)に移動したいのですが、
どのような処理を書いたら良いのでしょうか?

440:デフォルトの名無しさん
10/12/29 02:08:02
>>439
書き換え終わった後で
$(document).scrollTop(0)
とかやったらいいんじゃない?

441:デフォルトの名無しさん
10/12/29 04:13:03
$('#result').load('ajax/test.html', function() {
alert('Load was performed.');
});

442:デフォルトの名無しさん
10/12/29 16:35:59
>>440
できました。
ありがとうございます。

443:デフォルトの名無しさん
10/12/30 20:35:40
質問させてください。

以下のような自作クラスを作り、その中でjquery ui dialogを使っています。

var Sample = function(){
var param,
this.constructor = function(){
$("#dialog-form").dialog({
buttons: {'post': function () {
this.param = 1;
}
});
}
}

このdialogのbuttons パラメータの部分で、this.param = 1 としているのですが、
自分はこれを、Smapleクラスのオブジェクトのparamプロパティに代入するつもりで書いていました。
しかし、やってみるとこのthisはjquery ui dialogのオブジェクトを参照してしまうようで、
意図したとおりに動きませんでした。
このような場合に Sampleクラスオブジェクトのparamプロパティに値を代入させるには
どう書けばよいのでしょうか?

アドバイスいただけると幸いです。

444:443
10/12/31 02:30:53
答えが>>435に書かれていました・・ありがとうございます。

445:デフォルトの名無しさん
10/12/31 06:26:08
クロージャがわかるのになぜ…。
スコープぐらい自分で試して把握しないと、
いつまでたってもthisの挙動が理解できないぞ。


446:デフォルトの名無しさん
10/12/31 06:27:41
varの有無でscope変わるのが卑怯だ

447:デフォルトの名無しさん
10/12/31 06:35:56
letなら気持ちはわかるけど、
varの有無で卑怯の意味がわからんw
俺はよくできてると思うけどな

448:デフォルトの名無しさん
11/01/07 09:09:18
>>438
どうするの?

449:デフォルトの名無しさん
11/01/07 15:20:12
jquery
$('.hoge label').click(function(){
alert("");
});

html
<div class="hoge">
<label for="radio">
<input value="1" type="radio" id="radio" style="display:none;">
</label>
</div>

上記のソースでlabelに設定されている領域をクリックすると
コードが2回実行されます。
inputのidで指定した場合は1回のみ実行なのですが、display:none
のinputがIEで認識されないのでやむなくlabelを指定してfind('input')としています。
2回実行される原因は何なのでしょうか?

450:デフォルトの名無しさん
11/01/08 00:30:13
labelの領域をクリック→labelが反応→対応しているラジオボタンが反応→対応しているlabelが反応って感じか。
原因は知らんけど click イベントの中で e.preventDefault() を入れたら二度呼ばれるのは回避できた。

451:デフォルトの名無しさん
11/01/08 01:43:36
>>448
thisは変数じゃなくてキーワード。
匿名関数内で外部でのthisの実行結果を取り出したいなら、
変数に渡してクロージャ化するのは常套手段。
今のJavaScriptなら基礎レベル。

452:デフォルトの名無しさん
11/01/17 16:35:10
$.postで使う第2引数についてです。
URLリンク(allabout.co.jp)
を参考にformに入力されたデータをpostする際に、入力項目を列挙せずに
for (form.element.length)みたい感じですっきりさせたいと思いましたが
何故か<form>タグがなく、<form>タグを追加したら非同期ではなくなってしまいました。
<form>タグなしでform.element.lengthのようなアクセスはどう記述したらいいでしょうか?

453:デフォルトの名無しさん
11/01/17 19:54:31
formに入ってればserializeで送れるよ
$.post(url, $('form').serialize(), function(){})

非同期になるのは$.postした時にsubmitしてるからじゃね

454:452
11/01/17 20:51:56
>>453

ありがとうございます!頂いたserialize()をぐぐったところ↓を見つけました
URLリンク(semooh.jp)

&でkey=valueになるようですが
key:value,key:value,key:valueの形に返してくれるメソッドはありますでしょうか

455:452
11/01/17 21:10:33
>>453
ごめんなさいserialize()でかえってくる形で大丈夫でした
URLリンク(d.hatena.ne.jp)
ありがとうございました!

456:デフォルトの名無しさん
11/01/21 11:26:15
空のjQueryオブジェクトに、新しく要素を追加するのって
どうやればいいんでしょう?

// 空のjQueryオブジェクトに要素がappendできない
var $list = $([]);
$list.append($("<H3>できない</H3>"));

// 最初に何か1つ入ってればappendできる
var $list = $("<div></div>");
$list.append($("<H3>できる</H3>"));


空のところに追加したいです。


457:デフォルトの名無しさん
11/01/21 12:39:59
何がやりたいのかよく判らないが
色々と誤解があるような気がする

思い切ってエスパーすると

$("body").append($("<H3>できない?</H3>"));

とかではだめ?

458:デフォルトの名無しさん
11/01/21 12:48:14
>>457
ありがとう。
bodyにappendする要素を事前に動的に作成しておきたい、
という趣旨です。

var $list = $([]);
$list.append($("<H3>できない</H3>"));
// さらに$listに対して、form系の要素の追加やイベント設定をした後に
$("body").append($list);

といった感じで。


459:デフォルトの名無しさん
11/01/21 13:34:37
つまり

要素を作りたいがbodyの下には入れたくない
さらに、その"幽霊"要素を必要な時にbodyの下に送り込みたい

という事でしょうか?

あるいは単純に、必要な時に必要な要素が使え、また追加できればよい
という事でしょうか?

前者の例は、そもそも出来るか判らないですが、後者の例でしたら
色々解法はあるかと思います。

例えば、
・必要な時に普通にappendする
・最初にappendして非表示にする
・追加する要素のHTMLコードを文字列配列にして .html(lst[0]);とか適宜適用する

趣旨に反したら御免なさい

460:458
11/01/21 13:40:19
>>459
レスありがとうございます。
その観点で行けば後者なんですが、
そもそも知りたいことは、

「空のjQueryオブジェクトに対して動的に要素を追加できるのか否か」

の1点です。
空でなければ、とりあえずDIV要素で囲むなどして
やりたいこと自体は実現できているので。。。
ただこの場合、とりあえず囲むためだけに使っているDIV要素が
そもそも不要なので、最初から空の状態でオブジェクトを作りたいのです。



461:デフォルトの名無しさん
11/01/21 13:55:25
fragment的なことがやりたいんだろうな。
<div></div>に作って、最後にまとめてappendすればいいんじゃね

var flagment = $('<DIV></DIV>');
// flagmentになんやかんやする
var body = $('body');
flagment.conents().each(function () { body.append(this) });

まあこんなfragment作るより、配列のまま扱うほうが軽くね?とは思うが。

462:デフォルトの名無しさん
11/01/21 14:03:17
出来る事は出来ました。


//objListはパブリックで定義
objList.push($("<H3>000</H3>"));
$('body').append(objList[0]);

463:デフォルトの名無しさん
11/01/21 14:07:09
$([])これで帰ってくるのはただのArrayObjectだったような
だからそのやり方で出来るのは当然かな・・・?

464:デフォルトの名無しさん
11/01/21 14:09:28
>>460
>「空のjQueryオブジェクトに対して動的に要素を追加できるのか否か」
変なこと言ってるって自分で気付いてる?

jQueryオブジェクトってのはDOMの配列みたいなもんで、
それが空ってことは要素ゼロなわけ。
それにappendメソッドを呼んでも何も起こらないのは分かるよね?


465:デフォルトの名無しさん
11/01/21 14:36:51
>>461
やはりDIVで囲んだほうが無難ですかね。。。
不要な要素は入れたくなかったのですが、
確かに最初に<div></div>を作れば、やりたいことは実現できています。

>>462
なるほど、pushを使えば良さそうですね。
試してみたところ、やりたいことに近い状態になりました。
ありがとうございます。

>>463-464
URLリンク(stackoverflow.com)
この辺見てたり、「empty jQuery object append」とかでググってたところ、
けっこう似たようなことをやりたがってる人たちが多いような感じだったので
旨い方法は無いかなと探していた次第です。
ともあれ、

1) <div></div>を作ってそこにappend等する
2) pushを使う

このあたりで検討してみます。レスくれた方々ありがとうございました。


466:デフォルトの名無しさん
11/01/21 15:24:15
>> 465
なるほど。addメソッドで追加してやればいいのか。

var a = $('')
a = a.add($('<DIV>1</DIV>'));
a = a.add($('<DIV>2</DIV>'));
a.length // 2

この挙動を見る限り、jQueryオブジェクト(のもつset)自体はimmutableなんじゃないかな。


467:デフォルトの名無しさん
11/01/21 15:25:33
addにはHTML渡せるね。

a = a.add('<DIV>3</DIV>')


468:デフォルトの名無しさん
11/01/22 21:39:17
>>446
常にvar使ってれば、そもそも悩む事もねえだろ。

469:デフォルトの名無しさん
11/01/24 09:14:19
varを使わないメリットってある?


470:デフォルトの名無しさん
11/01/24 18:49:11
>>469
メリットは無いだろ。
デメリットはあるけど。

471:デフォルトの名無しさん
11/01/24 18:57:35
>>469
変数が自由に使える点

472:デフォルトの名無しさん
11/01/24 22:39:07
助けてください。
URLリンク(solidstate.jp)
に書いてあるファイルをダウンロードし、そのままコピペしたページを作ったのですが
(もちろん読み込みファイルのディレクトリとかは自分の環境に合わせてます)
全く動きません。
上記サイトでは問題なく動くのですが、コピペした自分のサーバでは、全く動かないのです。
FireFoxのエラーコンソールには、
「属性セレクタ中に不正なトークン'!'が含まれています」
ってメッセージが出るだけで.......

助けて。エスパー


473:デフォルトの名無しさん
11/01/24 23:00:42
>>472
せめてどのファイルを読み込んだかとHTMLを書いた方が答えやすいからそうした方がいい

とりあえずjquery1.3.2なら動くけど1.4系は動かないね。どこが問題かまでは見てないけど。

474:デフォルトの名無しさん
11/01/25 09:06:41
>>470-471
㌧キュー
グローバルが特に必要無ければ、グローバルは
まったく使わなくてもいいんだよね?

全変数・全オブジェクトはvarで宣言するってことで


475:デフォルトの名無しさん
11/01/25 11:33:25
>>474
(function(){
var hoge=fuga;
var hage=hige;
...
})();

と必ず書く人もいるね


476:デフォルトの名無しさん
11/01/26 03:41:17
appendで追加する要素をfadeInで表示したいんですが、
これよりスマートな書き方はありますか?

$('#items').append('hogehogehoge').css('display', 'none').fadeIn();

追加→非表示→フェードインの3アクションあるのが無駄な気がするんですが
これを一括に行うメソッドとかないですかね

477:デフォルトの名無しさん
11/01/26 08:47:29
ラップする関数作ればいいんでね?

478:デフォルトの名無しさん
11/01/26 13:38:43
appendする要素をCSSファイルのほうでdisplay:noneにしとく

479:デフォルトの名無しさん
11/01/26 15:56:39
自分でやる時は>>478が言ってるみたいにnoneクラス作っちゃうな
.none {
 display:none;
}
で#itemsにnoneのクラス付けとく

ただ、普通appendする時って#items内に既に別の要素がある場合がほとんどだから
自分の場合は#itemsには.noneを付けずに
$('<span/>')
.text('hogehogehoge')
.addClass('none')
.appendTo('#items')
.fadeIn();
みたいにやるな。で、それを>>477の言うとおりラップ関数にする

480:479
11/01/26 15:59:36
あ、noneクラス外し忘れた。
.fadeIn(function(){
 $(this).removeClass('none');
});
あとはnoneクラス用意せずにhide()使うとかかな

481:デフォルトの名無しさん
11/01/26 21:30:03
>>480
CSSであらかじめ定義しておくのは呪文が増えるだけでメリット無いと思う
やらない方がいいよ

482:デフォルトの名無しさん
11/01/28 01:40:15
>>476
cssメソッドはあまり使わないほうがいいよ。
理由は、見た目を制御するのは、cssファイルでやるものだから。

483:デフォルトの名無しさん
11/01/28 01:47:34
じゃあhideとかshowとか使えんな

484:デフォルトの名無しさん
11/01/28 03:53:26
removeが簡単に関数一発で元に戻せるようになれば
そういう方向性もありかもねえ

485:デフォルトの名無しさん
11/01/28 12:08:52
>>482
プラグイン化したものを他で使おうとするとCSSまで修正しなくてはいけなくなるから修正箇所増える
他人が見てもなんで予想外の動作するのかわかりにくい
ライブラリの外で定義しとかないといけないグローバル変数を使うよりたち悪い

486:デフォルトの名無しさん
11/01/28 14:13:01
どっちも一長一短だろーに。

487:デフォルトの名無しさん
11/01/28 21:52:54
>>483
hideやshowはオブジェクトがそこにある、
ないという見た目だけの問題じゃないから
例外だよ。

少しは柔軟に考えような。

488:デフォルトの名無しさん
11/01/29 22:09:22
$.ajax で success に処理がいくために必要な条件をご存じの方、いらっしゃいませんか?
サーバーサイドから適切な値が返ってきてるのに success 後の処理に入ってくれなくて困っています。
ちなみに error にもいきません。

489:デフォルトの名無しさん
11/01/29 22:41:11
コードの単純なミスな気がする

こんな感じで動くとは思うが

function fncAjax() {

$.ajax(
{
dataType: "JSONP",
data: {
},
cache: false,
type: "POST",
url: "cgi-bin/test.cgi",
beforeSend: function(){
},
success: function (datareturn) {
//成功処理
},
error: function (datareturn) {
//失敗
},
complete: function (datareturn) {
//完了
}
}
);

}

490:デフォルトの名無しさん
11/01/30 05:51:28
>サーバーサイドから適切な値が返ってきてるのに

それ思い込みだから

491:デフォルトの名無しさん
11/01/30 15:37:55
>>473
ありがとうございました。1.3.2で無事動かせることが出来ました。
ただ、もう一つ問題がありまして。質問させていただきます。
実はこのボックスを、ajaxで後から読み込んで使いたいのですが、意図した動きをしてくれません。
最初から表示している分には問題なくリサイズやドラッグが出来るのですが、
後から読み込んだ物は、全く動作しない状況です。

どのようにしたらよろしいでしょうか?

492:デフォルトの名無しさん
11/01/30 15:53:06
$('input#btnNew').live('click', function() {
alert('新しく作ったボタンのイベントはliveを使用');
});

493:デフォルトの名無しさん
11/01/30 17:09:23
JSのモーダルダイアログは、もう使わないほうがいい?

494:デフォルトの名無しさん
11/01/30 17:44:36
なんで?

495:デフォルトの名無しさん
11/01/30 17:59:18
>>492
clickの部分をドラッグドロップの場合、どのように設定したら良いのでしょうか?
それとも491への回答ではないとか??

496:デフォルトの名無しさん
11/01/30 20:01:38
>>495
元の質問を読んでいなかった

で、色々試したのだけれど

$("body").append('<div id="divtest" class="jqDnR">');
$("#divtest").append('<div id="divtesttest" class="jqResize">');
$('#divtest').jqResize('.jqResize');

こんな感じでいけた

497:デフォルトの名無しさん
11/01/30 21:58:51
<a href="/news/">
<a href="/access/">
というナビゲーションで

$("a[href^='/']").each(function() {

var obj = $(this);
var link = obj.attr('href');
var file = "index.html";

obj.attr( 'href', link + file );
}

attr()をディレクトリによってindex.phpとindex.htmlに振り分けたいんですけど

/news/のときindex.php
/access/のときindex.html

どうすればよいでしょう?

$("a[href*='news']")..... みたいなことを考えたんです挫折しました

498:デフォルトの名無しさん
11/01/30 23:11:15
IF文とか使うんじゃダメ?

たくさんディレクトリーがあるんなら連想配列を用意して
ディレクトリ名をキー、ファイル名を値にするとか?

jQueryにこだわる事もないと思う
(上手い方法があるのかもしれないけど)

499:デフォルトの名無しさん
11/01/30 23:59:48
配列にするかmod_rewriteかな

500:デフォルトの名無しさん
11/01/31 00:04:43
そうですね配列ですよね
みなさまどうもありがとうございます!

501:デフォルトの名無しさん
11/01/31 02:59:34
>>488
firebugのコンソールで見ればいいじゃん
正しいレスポンスが返ってきているかどうかそれみりゃ分かる
大抵は正しいJsonをサーバ側が返しておらずjQueryがパースできない
とかそんな理由で動作してない

Jsonチェック
URLリンク(www.jsonlint.com)

502:デフォルトの名無しさん
11/01/31 10:28:27
お前らjQueryの前にJavaScriptの勉強しろよ。

503:デフォルトの名無しさん
11/01/31 20:47:52
>>496
ありがとう。
ばっちりでした。

504:デフォルトの名無しさん
11/02/02 15:09:54
checkboxをマウスでをクリックした場合はchangeイベントが呼ばれるのに、
jQueryから設定した場合はchangeが呼ばれないので、
しかたなく次のようにしているんですが、何か間違っているでしょうか?
cb.attr("checked", "checked").change();

505:デフォルトの名無しさん
11/02/02 17:12:02
cb.bind("click", function(){
  alert("チェクボクスのクリッコ:"+cb.attr("checked"));
};);

ではどう?試してないけど。


506:デフォルトの名無しさん
11/02/02 18:46:54
jqueryってブラウザ間の差異を吸収してくれるんですよね
ひとつのブラウザでテストすれば
jqueryがサポートしている他のブラウザどれでも同じように動くと思って問題ないですか?

507:デフォルトの名無しさん
11/02/02 19:33:14
>>506
そうは言ってもIEの糞さは想定を上回る
FirefoxとChromeだとスムースなアニメーションが
IEのだとカックカクな時があるので
念のため確認しておいたほうがいい

508:デフォルトの名無しさん
11/02/02 20:08:22
>>507
どうもありがとうございます
そうします

509:デフォルトの名無しさん
11/02/02 20:41:18
>>508
IE6の糞さってのはCSSを仕様通りに解釈してくれない部分にある。
jQueryの役目はDOM要素の操作までだから、操作後のHTML+CSSをIE6が
とんでもない解釈しても、jQuery側はそれを修正することはできない。
IE6は人類のために早く滅亡すべき。IEが唯一役に立つシーンは
FirefoxやChromeをダウンロードするその時だけ。

510:デフォルトの名無しさん
11/02/02 21:02:59
IE6を使ってる情弱は20%もいる
そして情弱は疑いもなくアドセンスをクリックしてくれる上得意客
切り捨てられない事情があるんだ
こうしてガラパゴス・ジャパン・スタンダードが作られていく
嘆かわしい

511:デフォルトの名無しさん
11/02/02 23:07:51
IE6をあまり悪く言うなや。
10年前のブラウザだぞ。
当時の他のブラウザはIE6よりもはるかに劣っていただろ。
むしろ今でも使えることに驚けよ。

512:デフォルトの名無しさん
11/02/02 23:59:57
入力フォームの工夫ってどういうのやってますか?


513:デフォルトの名無しさん
11/02/03 08:10:50
>>509
同意だが
Windows2000だとIE6からもうそれ以上バージョンアップ出来ないんだよね

514:デフォルトの名無しさん
11/02/03 12:16:50
IE6のすばらしさは縦スクロールバーがデフォで左右にカクカクしないことに尽きる

515:デフォルトの名無しさん
11/02/03 12:17:38
>>513
>Windows2000

正式サポートが去年オワタから白嶺

516:デフォルトの名無しさん
11/02/03 13:34:58
>>515
MSが一方的にもうしらねと投げ出しただけで
利用者はまだまだ数多くいらっしゃる訳だ

517:デフォルトの名無しさん
11/02/03 13:51:15
そういう人らはJavaScriptオフで使ってもらえばいい

518:デフォルトの名無しさん
11/02/03 19:29:03
質問です。
ajax関数を使うときに、
successキーに設定したコールバック関数内で、
ajax関数が始まる前に設定した変数を使いたい場合はどうすればいいのでしょう?
グローバル変数にしておく方法が一般的ですか?

var name = 'hoge';
name2 = 'global';

$.ajax({
  type: 'GET',
  url: './ajax.php',
  data: 'data=' + $(this).text(),
  success: function(res) {
    alert(name);
    alert(name2);
  }
});

519:デフォルトの名無しさん
11/02/04 03:16:36
(function(){
var name = 'hoge';
var name2 = 'global';

$.ajax({
  type: 'GET',
  url: './ajax.php',
  data: 'data=' + $(this).text(),
  success: function(res) {
    alert(name);
    alert(name2);
  }
});
})();

520:デフォルトの名無しさん
11/02/04 22:35:28
jQuery を使用して、以下のことをしたいのですが、どうしても出来ません。

<ul>要素内のアイテム(複数あります)を
別の外側の要素<div>にドラッグアンドドロップで移動させます。

draggable・droppableを使用してます
<--ここまではできるのですが-->

ドラッグアンドドロップで移動させた要素を、<div>内で並べ替えをさせたいのです。
sortableを使用しても、並べ替えが出来ません。 

解決方法を知っている方は、ご教授お願いいたします。





521:デフォルトの名無しさん
11/02/04 23:19:28
ya da.

522:デフォルトの名無しさん
11/02/04 23:33:32
馬鹿には無理

523:デフォルトの名無しさん
11/02/05 00:37:44
>>520
ヒント>>492

524:デフォルトの名無しさん
11/02/05 13:38:46
>>514
そこだけは同意

525:プログラム初心者
11/02/11 14:35:27
お願いします。

ajaxで以下のコードを読み込むと
テストのインナーHTMLがalertで表示されません。
$(function(){});はwindow onloadですので、
ajaxで以下のhtmlを取得し、どこか出力したいの要素にアペンドすると
<div id="test">が読み込まれる前に実行されてしまうようなので、
良い対応策をご教示ください。


<script type="text/javascript">
<!--
$(function(){
alert($('#test').html());
});
-->
</script>

<div id="test">テストのインナーHTML</div>

526:デフォルトの名無しさん
11/02/11 20:28:23
>>525

<div id="test">テストのインナーHTML</div>

<script type="text/javascript">
<!--
$(function(){
alert($('#test').html());
});
-->
</script>

527:デフォルトの名無しさん
11/02/12 06:25:44
<script type="text/javascript">
<!--
$(function(){
settimeout(alert($('#test').html()), 100);
});
-->
</script>

<div id="test">テストのインナーHTML</div>

528:デフォルトの名無しさん
11/02/12 23:42:43
これでKIOSK端末つくった事例は無いですか。
あったら見たい。

529:デフォルトの名無しさん
11/02/20 22:14:27.53
細い回線でjqueryを使いたいのだけど、
ページごとに埋め込むと表示に時間がかかってしまう。
それを回避させるために、隠しフレーム配置してすべてのページから、
参照して使うというやり方はできますか?

530:デフォルトの名無しさん
11/02/20 22:41:03.34
>>529
ページごとに埋め込む?
データソースで指定するって意味だよね?
まさか、本当に埋め込まないよね?

531:デフォルトの名無しさん
11/02/21 01:22:27.19
>>529
細い回線の定義をだな・・・
最新版の軽いほうは29KBだそうだがそれでも重いか?w


532:デフォルトの名無しさん
11/02/21 15:05:20.86
>>529
google CDNからひっぱれ

533:デフォルトの名無しさん
11/02/21 22:58:12.49
隠しフレーム

ウケるw

534:デフォルトの名無しさん
11/02/22 12:30:33.31
隠しフレーム

懐かしい...

535:デフォルトの名無しさん
11/02/23 15:15:51.74
HEADタグ内にSTYLEタグを生成し、その内容を.queueを使って書き換えることによって、
同じCSSクラスの要素を一気にフェードアウトさせたり、フェードインさせたりすることができますよね?
(FireFox、Chrome、Operaで動くことは確認)

これ便利だと思うのに、標準関数はないわ、そういうことをやっている例もみたことないわで、何か問題があるんだろうか、と思っています。
何か問題ありますか?

536:535
11/02/23 15:25:06.92
追記。
$('.foo').fadeIn(...) みたいなコードで同じことができるのは分かっています。
ただ、これだとすべての要素を個別に書き換えることになるので、負荷の点などからSTYLEタグを使いたいわけです。

537:デフォルトの名無しさん
11/02/23 19:44:22.47
class使ってならjQueryUIのaddClass、removeClassの拡張があるよ

538:デフォルトの名無しさん
11/02/23 21:44:22.84
jqueryを使ったすべてajaxで動作するサンプルオープンソースを教えてけろ!
データの登録や削除もひと通りできてるようなのお願い!
59歳独身

539:デフォルトの名無しさん
11/02/24 05:42:50.27
ないので今作ってるとこ
あなたが生きてる間には完成しないかも知れない

540:デフォルトの名無しさん
11/02/24 19:36:50.52
リストをクリックして1枚の画像の指定の位置にスライドさせるものを作ろうとしているんですが
marginで指定するのが主流というか、多くとられてる手法なんでしょうか?

あとmarginってcssのようにmargin:x x x x;で複数指定できないんでしょうか
.animate({margin:"x x x x"});のように記述しても読み込んでくれんです。。

541:デフォルトの名無しさん
11/02/25 00:20:00.54
1.5ってはやい?

542:デフォルトの名無しさん
11/02/25 00:31:23.47
使ってないけど、そんなに変わるわけねーだろって思ってる。

jQueryに限らず○倍速くなりましたとかいうのは
一部の処理だけ見れば○倍速くなったかもしれんが、
その部分は全体のごく一部だから、殆ど変わらないという
結果になるのことが多い。

543:デフォルトの名無しさん
11/02/25 00:53:29.29
>>540
英語読めないにしてもsampleあるんだからドキュメント見たらいいのに。
そこに指定できるのはleftとかだよ
URLリンク(api.jquery.com)
> Shorthand CSS properties (e.g. margin, background, border) are not supported.
なのでmarginTopとかmarginLeftとか指定しなさい

544:デフォルトの名無しさん
11/02/25 18:52:38.95
>>543
thx
公式ってデモも載っててすごいわかりやすいんだね
1度も見たことなかった

545:デフォルトの名無しさん
11/02/28 02:48:31.61
>>544は可愛すぎると思うんだ

546:デフォルトの名無しさん
11/03/05 20:28:17.13
質問です。
アイコンにロールオーバーして
音を鳴らすのと同時に画像を変えるのって可能ですか?

547:546
11/03/05 20:33:45.41
すいませんケアレスミスでした
自己解決しました。。

548:デフォルトの名無しさん
11/03/05 21:17:16.71
かわいいよかわいいよ

549:デフォルトの名無しさん
11/03/05 22:03:58.22
>>435
亀だし、理由考えたら当たり前なんだけど
この発想がぱっとできなくて行き詰ったことがあるなぁw

550:デフォルトの名無しさん
11/03/06 16:07:32.32
複数の(大量の)トグルスイッチがあって、idをふらずに個別操作したいのですが
方法はありますか?

<div class="tgl">
<button>more</button><div class="more">text 1</div>
</div>
<div class="tgl">
<button>more</button><div class="more">text 2</div>
</div>


function($){

$("button",".toggle").click(function() {

$(".more",".toggle").slideToggle("slow",function(){

if ($(this).is(":hidden")) {
alert("bye");

} else {
alert("hello");
}
});
})
});

551:デフォルトの名無しさん
11/03/06 16:08:16.56
>>550
>class="tgl"

class="toggle"

です
すみません

552:デフォルトの名無しさん
11/03/06 16:25:34.20
このスレってWeb制作板向けですよね
何でここにあるんですか

553:デフォルトの名無しさん
11/03/07 00:19:56.46
その両者の区別が消えつつあるのは確かかと…
node.jsなんてどっちで扱うべきかマジで迷うよね

554:デフォルトの名無しさん
11/03/07 00:24:18.90
node.jsはWebProgにあってもおかしくないがWeb制作はないだろ
Web制作って基本フロントに関する話じゃないの

555:デフォルトの名無しさん
11/03/08 15:43:10.43
質問させてください。

faceboxというプラグインがありまして、
<a href="/entries/new" rel="facebox">test</a>
のようにして、「テスト」テキストリンクをクリックすると、
/entries/new に アクセスしてレスポンスとしてフォームのhtmlを受け取り、
ポップアップでフォームがはめこまれたダイアログを表示してくれるという便利なものなのですが、
どこかで rel属性をそういった用途に使うのは非推奨になったと聞きました。

フォームのhtmlをdisplay:none;とかにしてクライアントに保持しておかなくて済むので
重宝していたのですが、上記に変わる便利なやり方、プラグインはなにかないでしょうか。

ご教示頂けますと幸いです。

556:デフォルトの名無しさん
11/03/08 16:28:51.18
>555
class属性に変えるのじゃだめなん?

557:565
11/03/08 17:38:30.31
すみません、具体的にはどんな感じになりますでしょうか?

あと、
URLリンク(chriswanstrath.com)
こちら見ますと、やっぱりrelを使うやり方が書いてあり、jqueryも1.3系が推奨になっているようです。
URLリンク(github.com)
こちらを見ますと1.4系にも対応しているにも見えるのですが・・

558:デフォルトの名無しさん
11/03/08 19:33:25.62
いや、faceboxのソースいじって、class="facebox"でできるようにすればいいのでは?ということなんだが

559:デフォルトの名無しさん
11/03/09 07:52:18.56
>>557
良く分からんがパッと見た目156行目に下記を追加で>>558の動作になりそうな気がする?
※defunkt-facebox-cbe32e1/src/facebox.js
if( $(this).hasClass("facebox") ) klass = "facebox";

560:デフォルトの名無しさん
11/03/09 14:51:27.87
>>550

.live() 使えばいけるだろ

561:デフォルトの名無しさん
11/03/13 21:25:36.52
スレリンク(hp板:462-484番)


562:デフォルトの名無しさん
11/03/17 04:42:21.37
>>550
$("div.hoge").each(function(index, elem) { $(elem).attr("id", "hoge"+(index+1));});

563:デフォルトの名無しさん
11/03/18 07:59:45.29
お腹すいた

564:デフォルトの名無しさん
11/03/18 09:23:32.68
コンビニ行っても何も無いよね
自宅警備中のニートには辛いわ


565:デフォルトの名無しさん
11/03/19 20:14:43.46
おなかすいたお

566:デフォルトの名無しさん
11/03/21 09:35:57.43
爆発を見た日に買い貯めした食料が底を尽き掛けている
今日は雨なので外に出たくない


567:デフォルトの名無しさん
11/03/21 11:31:27.71
日記はチラシの裏にでも(ry

568:デフォルトの名無しさん
11/03/22 09:08:16.15
牛乳が

牛乳が買えたお

569:デフォルトの名無しさん
11/03/22 22:38:16.53
いつものと違う見慣れない牛乳がやっと手に入った
次はトイレットペーパーだ

570:デフォルトの名無しさん
11/03/24 13:23:56.64
コンビニにゴハンがない

571:デフォルトの名無しさん
11/03/24 18:03:12.35
水も無くなった ><

572:デフォルトの名無しさん
11/03/24 21:22:20.22
iPhone用のサイトなんだけど、thickboxつかってモーダルウィンドウ出すと
オーバーレイで暗くなる部分が寸足らずで、下のほうが明るいまま。
だれか助けて(´;ω;`)

573:デフォルトの名無しさん
11/03/24 22:34:22.72
なんで今頃ちっくぼっくす使ってんだ




















今頃w

574:デフォルトの名無しさん
11/03/26 02:39:38.71
牛乳が買えない

575:デフォルトの名無しさん
11/03/26 09:16:15.53
おい!
セブンに見たことの無い牛乳が!

576:デフォルトの名無しさん
11/03/26 17:45:53.95
ローソンでも見たこと無い牛乳が入荷して来てる
うちの近所だとセブンイレブンの方が圧倒的に物量で勝ってる

577:デフォルトの名無しさん
11/03/26 18:02:20.94
以下のソースで、各リンクをクリックしたときのイベントを登録しようとした場合、例1と例2ではどちらが正しいのでしょうか?
どちらも同じ動きをするのですが、eachを使って要素分まわしながら登録するべきなのか、使わなくてもいいのかわかりません。

<a class="link">テスト</a>
<a class="link">テスト</a>
<a class="link">テスト</a>

例1
$(document).ready(function(){
$('.link').each(function{
$(this).click(function(){
//処理~
});
});
});

例2
$(document).ready(function(){
$('.link').click(function{
//処理~
});
});

よろしくお願い致します。

578:デフォルトの名無しさん
11/03/26 18:40:23.83
東京の放射線量って今どのくらいなんだろ
来週出張なんだけどやだなぁ

579:デフォルトの名無しさん
11/03/26 19:19:10.69
>>577
2の方で良い。動的に追加したエレメントにも対応させたきゃliveね。


580:デフォルトの名無しさん
11/03/26 19:51:24.77
>>578
URLリンク(park30.wakwak.com)


581:デフォルトの名無しさん
11/03/26 20:12:14.96
URLリンク(ftp.jaist.ac.jp)

582:デフォルトの名無しさん
11/03/26 20:38:24.57
えびぞーとまおが九州に逃げててワロた

583:デフォルトの名無しさん
11/03/26 23:13:47.16
>>579
ご回答ありがとうございました。

584:デフォルトの名無しさん
11/03/26 23:17:04.06
>>580
またピンポイントでウンコなサイトを紹介してきたね

585:デフォルトの名無しさん
11/03/27 07:36:08.01
>>582


586:デフォルトの名無しさん
11/03/29 07:05:00.18
パンが売ってないお

587:デフォルトの名無しさん
11/03/29 10:31:30.57
パンが無ければケーキを食え

588:デフォルトの名無しさん
11/03/29 10:42:35.98
小麦粉スレが見つからないよ
どこ?

589:デフォルトの名無しさん
11/03/29 11:51:56.32
attr("abc")
で、ランダムでタグに属性を追加しました。

ページ内で、追加した"abc"を持つタグのみを抽出したいのですが、できますか?

590:デフォルトの名無しさん
11/03/29 11:59:58.71
>>589
> attr("abc")
> で、ランダムでタグに属性を追加しました。

それじゃ、属性追加できないんじゃないかな。属性を追加するためには、.attr( attributeName, value ) でないといけないだろ。
で、追加したものは$('*[name="value"]')で選択できると思う。

591:デフォルトの名無しさん
11/03/29 12:12:57.29
>>590
>attr( attributeName, value ) でないといけないだろ。
そのとおりでした。

alert($(["abc"]));
で表示すると、objectが表示されているので、大丈夫そうでした。
この状態で、"abc"が含まれているオブジェクトのIDを順に取得したいのですが、
これもできるのでしょうか?


592:デフォルトの名無しさん
11/03/29 12:18:27.33
>>591
何をしたいのかいまひとつ分からんが.eachを使えばできるじゃね?
URLリンク(semooh.jp)

593:デフォルトの名無しさん
11/03/29 12:51:18.82
>>592
なにかうまくいきません。下記のようなことがしたいです。
1.画面上の一部のinput,select項目に、属性"abc"を追加しています。値はすべてバラバラです。
2.ボタンを押下すると、画面内のオブジェクトをサーチし、
  属性"abc"をもつ項目のみ抽出したいです。
3.抽出した結果、input,selectで入力した値と、属性"abc"を比較して、
  同じであれば、エラーにしたいです。

で、下記のコードを教えて頂いた内容とともに書いてみました。
$('*["abc"]').each(function()
{
i++;
}
);

alert(i);

私の考えでは、表示される項目が30個("abc"の属性を持つものが30個なので)のはずですが、
iが150とかになります。
おそらく"abc"の属性をもつ項目以外も抽出されてるのではないかと思います。
なにかがおかしいとは思いますが、見当がついてないです。


594:デフォルトの名無しさん
11/03/29 14:51:57.54
なにかがおかしいとは思いますが、見当がつかないので
実際に使ったコードを載せてください

595:デフォルトの名無しさん
11/03/29 15:04:50.61
そうそう。説明がヘタなら本物をさらさないとレスが増えるだけで話がすすまない

596:デフォルトの名無しさん
11/03/30 07:19:58.89
>>593

var $body = $('body');
$body.contents().detach();
var $form = $('<form />').appendTo($body);
for(var i = 0; i < 10; i++){$form.append('<input />')};
var $inputs = $form.children();
$inputs.each(function(i){if(i%3 == 0){$(this).attr('abc', i)}});
var j = 0;
$('input[abc]').each(function(){j++});
alert(j);

URLリンク(jquery.com) を開いて、Google Chromeのコンソールにこのコードを入力すると、「4」と表示される。

597:デフォルトの名無しさん
11/04/03 19:51:49.76
domをzen codingのような形式で全部吐き出せるようなプラグインって無いかな
文章も込みで


598:デフォルトの名無しさん
11/04/06 19:42:23.67
<select>のプルダウンメニューで、選ばれた時に、特定の要素をトグルにしたいのですが、
selectもchangeもclickも、うまくいきませんでした。

プルダウンメニューの特定の項目が選択されたら、それに対応する要素にtoggleClassさせる方法はありますか?

599:デフォルトの名無しさん
11/04/06 20:18:32.73
自己解決しました

600:デフォルトの名無しさん
11/04/07 04:48:57.22
質問投げといて解決したって言うのに結果もロクに示さない自己マンは公共の場所へ来るなよ

601:デフォルトの名無しさん
11/04/07 08:17:13.43
JQuery mobileで
リンク先をexternalにすると
transitionが使えなくなるんですけど
何かいい解決方法を知っている
人いないでしょうか


602:デフォルトの名無しさん
11/04/08 17:31:40.84
スマートフォンサイトでjcarouselliteを使っているのですが
スマホで更新を行うとDiv内の要素が無視されて下のdiv要素が
上からかぶってしまいます。
リンクタグを押して再度画面を表示すると、きちんと表示されます。
Androidのブラウザのバグだと思いますが、例外的でもいいので
対処法は御座いますでしょうか?

<script type="text/javascript" src="./jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="./jcarousellite_1.0.1.min.js"></script>

603:デフォルトの名無しさん
11/04/08 18:27:34.25
>>602

自己解決しました。
画像の高さ指定を行っていなかった為、jcarouselliteが高さを認識
できずにつぶれていました。

604:デフォルトの名無しさん
11/04/14 11:49:40.30
toggle() や slideToggle() で折りたたみを開く際に大きくサイズオーバーしてしまいます。
隠す要素にリストなどのブロックを float で横並びにさせたものがあると起こるようなのですが、
回避策はないでしょうか?
よろしくお願いします。

605:デフォルトの名無しさん
11/04/14 12:29:09.99
どえらいおおざっぱな質問だな
ソースを見てどの要素が崩れるか見てみないと答えようがない

606:Perl忍者lvl4 ◆M5ZWRnXOj6
11/04/15 22:57:59.75
getJSONで取得したjsonを配列にいれて使いたいんだけどどうやればいいの?

[ 'hage.jpg','baka.jpg','aho.png']
っていうjsonファイルあったらさ

getJSONで読み込んで配列にいれて

hage.jp,baka.jpg,aho.jpgの3個 配列MAXまで繰り替えして
html生成したいんだけど
<a href="hage.jpg">hage.jpg</a>
<a href="baka.jpg">baka.jpg</a>
<a href="aho.jp">aho.jpg</a>

やりかたおしえてください!!!!!!

607:Perl忍者lvl4 ◆M5ZWRnXOj6
11/04/15 22:59:45.58
ああああ・・・できそうです

608:デフォルトの名無しさん
11/04/19 15:04:11.39
1つのページで複数の jQuery UI ダイアログを使う場合の定義の仕方がわかりません。
ダイアログが1つの場合は、
<script type="text/javascript">
<!--
jQuery(function($){
$('#button1').button();
});
$(function(){
$("#dialog1").dialog({
//autoOpen:false等ダイアログプロパティの定義
buttons: {
//ボタンの定義
});
$("#button1").button().click(function(){
$("#dialog1").dialog("open");
});
});
-->
</script>
で、画面表示時はdialog1は非表示になっており、button1がクリックされるまでは
表示されないという動作ができています。
ここに新たな、同じようなダイアログとボタンの組み合わせを設けたい場合、
どのように定義すればよいでしょうか?

609:608
11/04/19 15:15:11.27
補足です。>>608で書いたダイアログとボタンの組み合わせを同様な書き方で
2つ(dialog1、button1、dialog2、button2として)定義してみましたが、
それでは上手く動作しませんでした。
動作環境は、Firefox3.6.16とjquery-ui-1.8.7.custom.min.jsを利用しています。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch