【誰か】jQueryのここがわからない【助けて】at TECH
【誰か】jQueryのここがわからない【助けて】 - 暇つぶし2ch150:デフォルトの名無しさん
10/04/22 01:58:16
>>147
宣伝すぎるだろw
前にJavaScriptスレにあった「Web3.0がくるんでしょうか」で締めた宣伝レス思い出したわw
もっとがんばってから宣伝しろよ

151:デフォルトの名無しさん
10/05/02 14:54:48
URLリンク(hisasann.com)

$(function () {
$("#data").load("data.html");
}
);
でローカルファイルdata.htmlにアクセスできる、とありました。
確かにFirefoxでは動作したのですがGoogle ChromeではNGでした。
Google Chromeで同様に動作させるためにはどのようにすればよいでしょうか。

また、本来このようにローカルファイルへアクセス出来るのは問題がある動作なのでしょうか。

152:デフォルトの名無しさん
10/05/02 19:54:03
>>151
これ、書いている人が勘違いしてるんだろうけど、
サーバからクライアントのローカルファイルにアクセスできるわけじゃないからあんま意味ないよ

ローカルのhtmlをブラウザで見たらローカルのファイルを見れてるだけ。

153:151
10/05/02 22:02:45
>>152
あ、私がやりたかったことに沿っていたのであまり気にしてませんでしたが、
確かに引用文元からの文脈でみると勘違いしているようですね。

ただ、今回試したのは
ローカルのhtmlからjQueryを用いてローカルファイルをloadする、
ということなのですが、これがGoogleChromeでは出来ませんでした。

154:デフォルトの名無しさん
10/05/03 02:55:37
>>153
そういうのをやるとTiddlyWikiのソースを見ると参考になるよ。
結局ブラウザごとに違う処理を使ってるわけだが。

155:デフォルトの名無しさん
10/05/03 03:02:12
>>153
chromeはセキュリティポリシーでローカルファイルへのアクセスを禁止してるからね
検索すると結構出てくると思う

156:151
10/05/03 14:13:50
>>154-155

URLリンク(journal.mycom.co.jp)
URLリンク(blog.chromium.org)
> ローカルファイルに対しては「Same origin policy」は必ずしも
> 有効になっておらず、ブラウザごとに対応はまちまちだ。

まさにsame-origin policyってローカルファイルに対してはどうなんだろう、
と思っていたので、上記記事が参考になりました。

ただ、ここで記載されている方針からすると、
ローカルjsからローカルファイルはアクセス出来て良いように思えますが…
(記事が古く現在の方針とは異なる?あるいはjQueryのChromeへの考慮の問題でしょうか?)


…と思ってTiddlyWikiのサイト
URLリンク(tiddlywiki.org)
を見たところ、--allow-file-access-from-files というオプションがあるのに気づき、
これを付与して起動したところ、所望の動作が得られました。
5.0.335.1以降仕様が変わったそうです。
URLリンク(www.google.com)

157:デフォルトの名無しさん
10/05/22 12:15:00
テーブルのヘッダを固定してスクロールできるjavascript(jquery)
のプラグインを探してるんだけど、オススメありますか?
検索とかソートの機能は不要です。以下の2つを試したけど少々不満。

URLリンク(www.otchy.net)
右端までスクロールするとヘッダがずれる

Super Tables
URLリンク(c-brains.jp)
機能は申し分ないけど、少々重い

158:デフォルトの名無しさん
10/05/30 04:04:47
これってそこかしこにサンプル転がってるけど
競合ってするの?めぼしい物を入れていこうと思ってるんだけどさ

159:デフォルトの名無しさん
10/05/31 14:07:01
$が重複しそうなときには回避できる
詳しくはぐぐれ

160:デフォルトの名無しさん
10/06/02 17:09:54
>>159
$の衝突は回避できても>>158が想像してるのはプラグインのnamespaceだから衝突しそうじゃね?

161:a
10/06/03 01:46:20
a

162:デフォルトの名無しさん
10/06/03 01:58:52
>>157
URLリンク(d.hatena.ne.jp)

163:デフォルトの名無しさん
10/06/06 04:07:03
クロスブラウザで統一されたデザインを成り立たせようと思ったらとたんに難しくなる
どう回避してる?

164:デフォルトの名無しさん
10/06/06 04:12:29
>>163
そもそもIEユーザーが見るようなサイトではなかったから、IEは無視することにした

165:デフォルトの名無しさん
10/06/07 13:31:00
すいません
jquery 1.4.2 を使って、

$.getJSON(
  '/api',
null,
function(data, status) {
alert(data);
alert("abc");
}
);
のような感じのコードを書きました。

firebugで確認すると、Ajaxでのgetメソッド通信は200 ok で成功していて、
欲しいデータも取ってこれてるのですが、なぜかコールバック関数が呼ばれず、悩んでいます。
Ajax通信が成功したあとの
alert(data)もalert("abc")も実行されないんです。(ダイアログが何もでない)

何か思い当たる節がある方教えていただけると幸いです。

166:デフォルトの名無しさん
10/06/07 14:07:45
nullって何だよ?

167:デフォルトの名無しさん
10/06/07 14:12:59
レスありがとうごじます。
第2引数がなんなのかよく分からなかったのですが、nullにしてる
サンプルを発見したのでそのまま使いました。
第2引数を省略して、コールバック関数を第2引数にしてる例もあったので
そちらも試してみたのですがうまくいきません。。

168:デフォルトの名無しさん
10/06/07 14:17:26
Forefox+Firebugのコンソールで、Javascriptのどこかでエラーが発生してないかどうか確認。
なければ、packされてないjqueryを使ってステップ実行で、どこでどうなるのか把握。
invalidなJSONデータを戻してるとか、そんなんじゃねーの?

169:デフォルトの名無しさん
10/06/07 14:29:13
>>invalidなJSONデータを戻してるとか
うわーおっしゃる通りでした。
smarty使わなくてはいけなくて、勝手にhtmlエスケープされていたからでした。
ありがとうござまいした。助かりました。

170:デフォルトの名無しさん
10/06/07 15:44:52
domにdomをappendすることってできないのでしょうか??

d = $(".hoge_class");
dd = $("#fuga_id");

dd.append(d);

とやってみたのですが、どうも要素が追加されません。
appendの引数は文字列限定しょうか。
domにdomを追加したい場合のやり方あったら教えて頂きたく><

171:デフォルトの名無しさん
10/06/18 20:47:03
このサイトの動きをjQueryで実現したいんだけど
どこかにライブラリないですか?
URLリンク(ito-naika.net)

172:デフォルトの名無しさん
10/06/18 21:09:13
>>171
マルチ乙

173:デフォルトの名無しさん
10/06/19 18:05:53
>>170
DOMを文字列に変換して追加すればいいんじゃない?

174:デフォルトの名無しさん
10/06/19 18:54:50
>>170

hoge_classのノード(複数の可能性あり)を移動したいって事だよね?

普通に可能だ

<script src="URLリンク(www.google.com)"></script>
<script>google.load("jquery", "1");</script>
<script>
function move() {
d = $(".hoge_class");
dd = $("#fuga_id");
dd.append(d);
}
</script>
<div id="fuga_id" style="background-color:aqua;"></div>
<input type="button" class="hoge_class" onclick="move()"><br/>
<input type="radio" class="hoge_class"><br/>
<textarea class="hoge_class"></textarea>


175:デフォルトの名無しさん
10/06/20 12:56:15
raphaelってどうですかね?

176:デフォルトの名無しさん
10/06/21 16:51:00
>>174
それ、何かの回答のつもりなのかにゃ?

177:デフォルトの名無しさん
10/06/23 20:31:37
詳しく調べたわけじゃないけど、
jquery内で使う変数が、BODY内で使われてるidと同じ場合、
IE6、7、8で100%エラーでるんだけど、これはバグと認識していいのかな?
それとも仕様?

JQueryの1.3、1.3.2、1.4.2で確認した。

178:デフォルトの名無しさん
10/06/23 20:54:05
<html><body>
<div class="test" style="width:100;height:100;background:#eee;">ああ</div>
<div id="hoge"></div>
<script src="URLリンク(ajax.googleapis.com)" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
hoge = "dummy";
$('div.test').hover(
function() { $(this).css('background-color', '#ccc') },
function() { $(this).css('background-color', '#eee') }
)
});
</script>
</body></html>

適当だけど、こんなやつ。
どちらかのhogeを変えたら動く。

179:デフォルトの名無しさん
10/06/23 21:28:12
>>178
alert(hoge.nodeName); // DIV
と出るのでDOMアクセスやスコープチェーンの違いかねぇ・・・

var hoge = "dummy"; ならエラー出ないよ。

180:デフォルトの名無しさん
10/06/24 00:11:16
>>179
本当だ。宣言されてればいいのか。
プラグインで数時間くらいハマって、泣きそうだった。

まさか全然無関係と思われる<div id="result">が原因とは思えないじゃんw

181:デフォルトの名無しさん
10/06/24 00:38:48
自作プラグインかそうで無いのかは知らないが、
varの書かれていないコードに疑問を持たない時点で・・・

182:デフォルトの名無しさん
10/06/25 16:47:33
テンプレートなしでHTML作ろうとしたら頭が死にかけた・・・

183:デフォルトの名無しさん
10/06/25 17:32:33
意味が分からない

184:デフォルトの名無しさん
10/06/26 07:21:35
jquery.tmpl.js
の最新にrenderが存在しないのは何故ですか?
これで1日潰れました

185:デフォルトの名無しさん
10/06/26 21:59:36
すみません
SmartClient のスレはどこですか?

186:デフォルトの名無しさん
10/06/29 18:37:02
$(".op").live("click", function(){
event.stopPropagation();
});
liveだとeventが取得できないんですが、どうすれば良いですか?

187:デフォルトの名無しさん
10/06/29 23:46:37
テーブルのセルを得る方法がわからないです。

$(上から何段目、左から何個目のセル).html('hoge');
みたいなことをやりたいんですけど

188:デフォルトの名無しさん
10/06/30 01:12:01
>>187
$("table tr:eq(0) td:eq(1)").html("hoge");

189:デフォルトの名無しさん
10/06/30 08:42:05
>>186
$(".op").live("click", function(event){
event.stopPropagation();
});

190:187
10/06/30 09:41:15
>>188
おおお・・・ありがとう
うちに来て妹とファックしてください

191:デフォルトの名無しさん
10/06/30 14:34:12
>>189
動きました。ありがとう。
htmlのタグの構成が間違ってました。

192:デフォルトの名無しさん
10/06/30 16:02:17
>>190
数回くらいの実行なら、>>188でいいけど、結構な数のアクセスが必要な場合は、
毎回セレクタ使ってるととんでもなく遅くなるよ(100回で秒のオーダーになったりする)。

そういう場合は、DOMで直接アクセス(なおかつ、ノードが下がるごとに変数にキャッシュ)が速い。
var rows = $('#my_table>tbody>tr');
var row = rows[0];
access row.cells[0], row.cells[1], ...

193:デフォルトの名無しさん
10/06/30 17:32:41
レキシカル変数って言うんですかそれ?
覚えたてでよく分からないです

194:デフォルトの名無しさん
10/06/30 17:39:15
単なるローカル変数

195:デフォルトの名無しさん
10/06/30 21:12:55
そですか

196:187
10/07/01 14:25:25
>>192
まさにそのくらいになってたからちょっと改良しなきゃなと
思ってたところだった。ありがとう。

197:デフォルトの名無しさん
10/07/01 14:27:02
$(xml).find('hoge,piyo,fuga').each(function(){
というループを実行してるとき、hoge,piyo,fugaのどれに
引っかかったのかを$(this)から取得する手段ってある?

198:デフォルトの名無しさん
10/07/01 14:36:37
>>197
$(this).get(0).nodeName とか?

199:デフォルトの名無しさん
10/07/01 17:11:29
>>198
get(0)!そういうのもあるのか

200:デフォルトの名無しさん
10/07/01 20:10:34
下のような2ペインになるようなhtmlを書いています。
<body>
<div class="ui-layout-west"></div>
<div class="ui-layout-center"></div>
</body>
ui-layout-westは左メニューでui-layout-centerがメイン画面です。メイン画面の方にGoogleのトップページなど任意の外部のWebページをロードしたいのですがどのようにすればよいでしょうか。
アドバイスお願いします。

201:デフォルトの名無しさん
10/07/01 20:14:31
<iframe>

202:デフォルトの名無しさん
10/07/01 20:27:33
>>201
アドバイスありがとうございます。できました。
<div id="main" class="ui-layout-center" src="URLリンク(www.google.co.jp)<)");
とかで変更できました。

203:デフォルトの名無しさん
10/07/01 20:28:20
おっとっと
<iframe id="main" class="ui-layout-center" src="URLリンク(www.google.co.jp)">
です。

204:デフォルトの名無しさん
10/07/02 22:10:53
$.ajaxで
ノードが読み込まれてから処理したい場合は
どう書けば良いですか?

205:デフォルトの名無しさん
10/07/02 22:52:46
ノードが読み込まれてからっていうか
DOMが構築されてから処理を進めたい場合です

206:デフォルトの名無しさん
10/07/03 00:05:09
>>204
ごめん、意味がよくわからない。

$("#node").ready(function(){
 //こういうこと?
 $.ajax({
 complete: function(xhr) {
  //それとも、こういうこと?
  consolen.log(xhr.responseXML);
 });
});

207:デフォルトの名無しさん
10/07/03 00:59:12
具体的にはhtmlを読み込み終わってから読み込んだ部分の高さを取得したいんだが
画像を読込前の高さが取得されてしまいます。

208:デフォルトの名無しさん
10/07/03 01:02:03
async:false
にするとかなりマシにはなるのですが、まだ稀に構築されてません。

209:デフォルトの名無しさん
10/07/03 01:03:26
>>207
あなたが求めている方法は、多分これだと思う。
URLリンク(dogmap.jp)

210:デフォルトの名無しさん
10/07/03 01:22:39
とりあえず適当に頑張ってみます

211:デフォルトの名無しさん
10/07/03 03:38:16
setTimeout(function(){
やりたい処理;
}, 500);
としたら出来た。

212:デフォルトの名無しさん
10/07/03 03:42:38
300位が気持ち良いかも

213:デフォルトの名無しさん
10/07/03 03:45:39
400だな、300だと読み込まれない時がある

214:デフォルトの名無しさん
10/07/03 04:19:54
URLリンク(www.appelsiini.net)
このプラグインの方が簡単だった

215:デフォルトの名無しさん
10/07/03 04:39:15
両方使わないと重い
重いサーバーのデータを持ってくると画像表示が間に合わない

216:デフォルトの名無しさん
10/07/03 11:18:21
プラグインの方は要らなかったみたい
サーバー別の待ち時間をデータベースに落いて
待ち時間を変化させないといけないかも。

217:デフォルトの名無しさん
10/07/03 14:11:07
プリロードしといて、
そっちのload確認してから
仕事すればいいんじゃないの?

218:デフォルトの名無しさん
10/07/03 18:19:46
フレームから他のフレーム内にある要素の値を書き換えるとき
parent.hoge.document.getElementById('piyo').value='うんこ';
みたいなことをしているんだけど
これをjQueryの流儀でかっこうよく書くにはどうしたらいいか

219:デフォルトの名無しさん
10/07/03 19:06:57
>>217
やってみたけど、completeにならない画像もあるので永久に終わらなくなった
アクセス解析用の埋め込み画像とかだと思う

220:218
10/07/03 19:19:22
$(parent.hoge).find('#piyo').val('うんこ');
とやってみたけど駄目だった。
うまく行きそうだと思ったんだけどなぁ

221:デフォルトの名無しさん
10/07/03 21:38:02
やっぱり、500ミリ秒待たないと画像の高さが反映されない


222:デフォルトの名無しさん
10/07/05 17:47:00
>>101

私も同じ問題ではまってる。
で、pasererrorになるならということで、以下のような関数を書いて処理をすると
正しく出力される。
1.4以降のバージョンでは正しくparseしてくれないようだ・・・。何が原因なんだろう・・・。

{"msg":"hogehoge"}

function getJSON(URL)
{
$.ajax({
url : URL,
dataType : "json",
error : function (XMLHttpRequest, status, errorThrown) {
switch(status)
{
case "parsererror":
var data = XMLHttpRequest.responseText; // 取得したテキスト
var json = eval( "(" + data + ")" );
alert(json.msg);
break;
}
},
});
}


223:デフォルトの名無しさん
10/07/05 17:58:17
>>222
getJSONは?

224:デフォルトの名無しさん
10/07/05 19:23:17
>>223

$.getJSON(URL,null,function(json){alert(json.msg)}));

#POSTするデータは無い(URLに含まれる)ので null としています。

で処理をすると全く応答がありません。
parsererrorが出ると後続の関数は実行されないようです。

$.getJSON(URL,null,alert("test")));

を実行すると普通に alert("test") も動きます。


225:デフォルトの名無しさん
10/07/06 02:02:35
>>224
一番考えられるのはやっぱparseJSONだと思うけど。
一応dataに戻る文字入れてこの条件通るか確認してみてはどうだろう。
(jQuery内でjsonのチェックしてる正規表現)

if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]")
.replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) {

226:デフォルトの名無しさん
10/07/06 08:43:02
>>225

この条件をテストしてみたらFALSEでした。
う~ん。空白か改行が入っているのかな・・・。

エンコードはZend_Json::encode() でしているのですが・・・。


227:デフォルトの名無しさん
10/07/06 22:49:03
jQueryの本、いっぱいでてるけどお勧めありますか?

228:デフォルトの名無しさん
10/07/07 11:10:03
書籍でお勧めは無いと思います。

229:デフォルトの名無しさん
10/07/07 11:15:20
ちょっと前なら jQuery in Action がおすすめでしたが、
もう2年も前の本なので今はおすすめできません。

230:デフォルトの名無しさん
10/07/07 12:52:36
URLリンク(www.amazon.co.jp)
これは?

231:デフォルトの名無しさん
10/07/08 00:11:22
>>230
なげーよ
URLリンク(amazon.jp)
こう書けよ

232:デフォルトの名無しさん
10/07/16 13:57:15
始めまして。すこしききたいことがあります。

jquery.alerts.jsを使用してIE8でjAlertを使ってメッセージダイアログを
表示させたいのですが、画面下方に新しいdivが作成されて表示されてしまい、
上手くダイアログとして機能しません。

どうすればいいのでしょうか?
ちなみにfirefoxではきちんとダイアログとして表示されました。
どなたか対策のわかる方はいませんでしょうか?

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


233:デフォルトの名無しさん
10/07/16 14:50:05
alart?

234:デフォルトの名無しさん
10/07/16 14:50:33
>>232
お前のバグだろ。
URLリンク(unvent.jp)

235:デフォルトの名無しさん
10/07/16 15:09:34
jdigiclockの天気予報を表示させるにはどうしたら良いのでしょうか?

236:デフォルトの名無しさん
10/08/16 09:40:07
URLリンク(www.skuare.net)
URLリンク(www.radoslavdimov.com)


237:デフォルトの名無しさん
10/08/16 16:11:58
はじめまして
jQueryの『plupload』にて質問があります

ファイルのアップロードはサンプルで無事行えたのですが
ファイル名が、日本語の場合文字化けしたファイル名になってしまうのですが
サンプルデータを書き換える場所がわかりません。

どなたか対策のわかる方はいませんでしょうか? よろしくお願いします

例)「20100816_テスト.zip」→「20100816_繝・せ繝・zip」


238:デフォルトの名無しさん
10/08/16 16:38:30
URLリンク(groups.google.co.jp)


239:デフォルトの名無しさん
10/08/16 16:39:31
>>237
「ちゃんと」utf-8で保存されてる
表示するプログラムの方でutf-8として正しく出力汁

240:デフォルトの名無しさん
10/08/17 05:29:06
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)


241:デフォルトの名無しさん
10/08/17 05:34:54
URLリンク(blog.e-riverstyle.com)

242:デフォルトの名無しさん
10/08/19 18:19:14
tabsを使って

1.タイマーなどでイベント待ち
2.発生したら特定のクリックさせたいタブを点滅させる
3.クリックされたら点滅をやめる

という処理をしたいんだけど、どうやればいいかな?
everyTimeとeffect("highlight")を組み合わせてみたんだけど、どうもうまく動かない・・・。
仕掛ければいいのはli? それとも別にdivやspan入れて、それにeffect仕掛ければいいのかな?

243:242
10/08/20 12:11:46
>>242
ボケて申し訳ない、自己解決。
liに個別のID振ってeffect指定すれば点滅してくれた>タブ

244:デフォルトの名無しさん
10/08/29 20:43:57
(1)datepickerで、「この日とこの日だけ選択可能にする」って制限をつけることは可能?
(2)月の移動をイベント検知してコードを動かすことは出来る?

何がしたいかというと、「blogのカレンダー」が一番近いですね。書き込みのあった日だけクリック可能にしたいのです。
「ピックアップした後にajaxで投げて日付をチェック、書き込みがなかったらエラーのダイアログ出して処理中止」で
逃げられないコトはないと思うけど、出来ればクリックそのものが出来ないようにしたいんです。

リファレンスを見ると、最小・最大の範囲でのみ指定可能って感じだけど、見落としているコトがあればご指摘くだされ。

245:デフォルトの名無しさん
10/08/29 22:02:33
「ピックアップした後にajaxで投げて日付をチェック、書き込みがなかったら無視」で


246:244
10/09/02 11:00:06
>>245
失礼、見逃してました。
が・・・やはりそっち(ピックアップ後の処理)になりますか・・・。
無視するにしても、出来ればdatepickerを閉じさせたくないんですよね。
onSelectイベントの中でdatepickerを閉じるのをキャンセルさせるのか可能でしょうか?

247:デフォルトの名無しさん
10/09/02 18:34:52
slideupして要素が画面から消えたら文章を書き換えてそれをslidedownして表示、といったことを行いたいのですが、うまくいきません。
どのように記述したらいいのでしょうか?
タブを用いた画面の切り替えに使いたいと考えています。
よろしくお願いします。

248:244
10/09/03 23:19:29
>>246
なんとか自己解決しました。大まかには

(1)input要素に追加するのではなく、divなどに(そのままなら常にdatepickerが表示されるように)追加する
(2)ロード時にdatepickerをhide()する。
(3)input要素のclickでdatepickerをtoggle()する。
(4)datepickerのonSelectイベントで(ajax経由で)日付をチェック、OKならinput要素に選択された日付を代入し自分自身をhide。NGならそのまま。

・・・という手順で、概ね意図した動作になりました。
datePickerのonSelectでは$(this)が使えないので、inst.inputから引っ張ってこなければならなかったのがちょっと難しかったですね。

249:すいません><
10/09/06 12:01:46
大変くだらない質問で恐縮ですが、どなたか教えていただけないでしょうか?
offset()を使用して要素の位置を取得したいのですが、select要素だけ取得できません。
どなたか対応策をお願いします。><
教えてくんです。すんまそん。


250:デフォルトの名無しさん
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']")..... みたいなことを考えたんです挫折しました


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