のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,434,800人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.78 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
801 : Name_Not - 2010/06/14(月) 08:20:09 ID:??? (+67,+29,-10)
>>798
結局コピペコードじゃねえかw
>>799と書いて結果を見てごらん。

>>800
エラーの種類ごとにエラーメッセージがたくさんあるとか
802 : Name_Not - 2010/06/14(月) 14:04:37 ID:??? (+73,+29,-55)
>>798
答えを書いてもいいけどそれじゃまた同じとようなことで躓くだろうからちゃんと勉強しろ
まずは""でくくられた部分はテキストとして扱われることくらい理解してこい
当然テキスト中では変数の内容参照なんて無理だからな
803 : Name_Not - 2010/06/14(月) 16:51:30 ID:??? (+6,-30,-152)
質問です。
for文で複数の対象にそれぞれ引数の違うonclickをつけたいのですが

eleAry = document.getElementsByTagName(td);
for (id=0; id<ary.length; id++){
eleAry[id].addEventListener('click',function(){change(id);},false);
}

のようにしても、どの対象も実行される時のid値を参照してしまいます。
これをfor実行時のidを綺麗に渡してやる方法はありますか?
806 : Name_Not - 2010/06/14(月) 17:54:48 ID:??? (+48,+29,-14)
>>804-805
おおお、ありがとうございます。
無名関数使うと解決できるんですね……!
807 : Name_Not - 2010/06/14(月) 17:58:59 ID:??? (+57,+29,-7)
何が問題だったのかを理解できていればいいんだが
808 : Name_Not - 2010/06/14(月) 18:38:22 ID:??? (+8,-30,-78)
見りゃ分かる通りボタンを押すとdivタグが非表示になるスクリプトなんだけど、リロするとまた表示されちゃうのはどうにかなりませんか?

<div id="area">
<buttononClick="document.getElementById('area').style.display='none'">
</div>
809 : 808 - 2010/06/14(月) 18:39:15 ID:??? (-7,-30,-94)
ソース修正します

<div id="area">
<button onClick="document.getElementById('area').style.display='none'">click!</button>
</div>
810 : Name_Not - 2010/06/14(月) 18:40:14 ID:??? (+52,+29,-1)
くっきーを使うんだ
811 : Name_Not - 2010/06/14(月) 20:16:55 ID:??? (-1,-29,-22)
循環参照などのメモリーリークはIE6のみで発生するものですか?
812 : Name_Not - 2010/06/14(月) 20:40:03 ID:??? (+57,+29,-15)
そんな簡単に退治できるような代物じゃないぞ、あれ
813 : Name_Not - 2010/06/14(月) 20:57:24 ID:??? (-1,-29,-21)
手元で確認したかぎりIE7でも発生します
814 : Name_Not - 2010/06/14(月) 20:58:58 ID:??? (+42,+14,-53)
単なる循環参照ではリークしない
DOMとの循環参照ではリークする
ページが閉じられようとリークを開放できない(ブラウザ自体のリークになる)のがIEのバグ

だと認識してたけど自信はない
815 : Name_Not - 2010/06/14(月) 21:49:08 ID:??? (+1,-21,-5)
unloadで後処理すればいいってもんでもないの?
816 : Name_Not - 2010/06/14(月) 22:12:11 ID:eAV3KPzU (-20,+29,-15)
>>815
安直に「参照が無くなればなんとかなるだろう」と思って、
onunloadで端からnull突っ込んでく作戦は失敗したことがある。
817 : Name_Not - 2010/06/14(月) 23:02:24 ID:??? (+90,+29,-61)
null突っ込むんじゃなくて、きちんとdetachEventしてもダメ?
イベントリスナとして使ってるクロージャが原因でリークしがちだから・・・(もちろん他のパターンもある)

リーク対策は各種ライブラリのコード読むと、コメントで明示されてたりするから参考になるかも
818 : Name_Not - 2010/06/14(月) 23:11:56 ID:eAV3KPzU (-12,+29,-18)
>>817
あー、それはわかんないや。
当時の自分にはそこまで考える力がなかったかも。
819 : 796 - 2010/06/15(火) 17:22:10 ID:??? (+62,+29,-57)
ゲームを作ろうとしているのですが1つ質問があります
PCだとそうならないようですが、時間が経つとGIFアニメが止まってしまいます
そこで止まる前に読み込んで交換するを繰り返しているのですが、
しばらくすると非常に重たくなります
メモりを解放(?)するにはどうしたらよいのでしょうか
820 : Name_Not - 2010/06/15(火) 18:22:16 ID:??? (+68,+28,+0)
>>817
可能です。
以上。
↓次の方どうぞ
821 : Name_Not - 2010/06/15(火) 20:14:05 ID:jMFm/3MC (-1,-30,-146)
Javascriptを使って
<input type="buttpn" value="チェック" onclick="check(1);">
と言うボタンがあったとして、jQueryではどういう書き方で
onclick(1)を実現すればいいのでしょうか?
$("button").click(function())
では実行されませんでした。
822 : Name_Not - 2010/06/15(火) 20:29:47 ID:??? (+57,+29,-8)
セレクタの使い方がまず違う
とりあえず基本をもうちょっと理解してからの方がいいような気がする
823 : Name_Not - 2010/06/15(火) 21:49:43 ID:??? (+4,-30,-35)
[type="button"]
[value="チェック"]
input[type="button"]
input[value="チェック"]
どれでもどうぞ
824 : Name_Not - 2010/06/15(火) 22:57:10 ID:??? (-6,-29,-4)
<script>
check(1);
</script>
825 : Name_Not - 2010/06/15(火) 23:23:43 ID:??? (+10,-30,-202)
一つの要素に定期的に画像を一つ入れてイベントを負荷することをやっているんだが、
メモリリークとかで気を付けることありますかね?以下二行繰り返し部分
elm.innerHTML = '<img src="hoge.jpg">';
elm.getElementsByTagName('img')[0].(attachEvent おr addEventListener)('onload', function (){ 処理 })
while(elm.childNodes.length) delete elm.childNodes[0]とか使わずにinnerHTMLも使っちゃって楽してるんだけど
大きな問題あります? 対象ブラウザはIE8, Chrome firefoxだけでいいです。
826 : Name_Not - 2010/06/15(火) 23:47:08 ID:??? (-1,-29,-19)
メモリリーク気にするなら、主に{処理}のところが問題になる気がするんだが
827 : 825 - 2010/06/15(火) 23:53:20 ID:??? (-2,-30,-23)
処理は画像のサイズがwindowサイズより大きかったらwidthとheightを窓サイズより小さく指定です。
828 : Name_Not - 2010/06/16(水) 00:01:00 ID:??? (+57,+29,-25)
いやだから、その処理を「どう書くか」が問題なんだが……
まあそれよりも先に気にするべきことがあるレベルだと思う
829 : Name_Not - 2010/06/16(水) 00:17:42 ID:??? (+57,+29,-15)
とりあえずクロージャ使ってないなら大丈夫だろう
830 : 821 - 2010/06/16(水) 00:37:39 ID:??? (+9,-30,-116)
>>823
これは
↓この部分に入れて使用しますよね?
$("").click(function())

で、「ボタンがクリックされたら」という条件を書く事は出来ますが、
>>821のonclickイベントのように関数を実行するにはどうするのでしょうか?
$("input[type="button"] ").click(function(){
check(1);
});
これだと、1の値を変えたい時は無理だし・・。
831 : Name_Not - 2010/06/16(水) 01:02:37 ID:??? (+57,+29,-16)
1を書き換えたらええやん
何言ってるのかよくわからない
832 : Name_Not - 2010/06/16(水) 01:03:51 ID:??? (-2,-30,-28)
自分が何をしたいか良く分かってないんじゃないか。
<input type="buttpn" value="チェック" onclick="check(1);">
これ↑と同じことはそれでできるよ。
833 : Name_Not - 2010/06/16(水) 01:34:43 ID:??? (+50,+27,+0)
1はどこにあるんだよ
834 : Name_Not - 2010/06/16(水) 02:14:00 ID:??? (+19,-30,-135)
察するに、今までonclick="check(1)" onclick="check(2)" とHTMLに書いてたのをjQueryにしようとして
1、2を書く場所に困ってるんじゃねーの
HTMLの構造がわからんが、こんな感じかね
$('input[value="チェック"]').each(function(i){
$(this).click(function(){check(i+1);});
});
835 : 821 - 2010/06/16(水) 02:23:31 ID:??? (+9,-30,-85)
例えば単純なんですが、
<input type="buttpn" value="チェック" onclick="check(1);">

function check(val){
alert(val);
}

みたいにすると、1だろうと2だろうとアラートで表示されますよね?
用はこういう風な書き方をjQueryでどうやってやるのかな?と思いまして。
836 : Name_Not - 2010/06/16(水) 02:33:31 ID:??? (+86,+27,-4)
同じように引数で変数渡せばいいじゃない
839 : Name_Not - 2010/06/16(水) 07:50:45 ID:??? (+10,-30,-190)
>>835
それなら>>830でも1だろうが2だろうがalertで表示されるでしょ
どういうことがやりたいのか伝わってこないな

例えば、
<input type="buttpn" value="チェック" onclick="check(1);">
<input type="buttpn" value="チェック" onclick="check(2);">

<input type="buttpn" value="チェック" onclick="check(10);">
みたいにたくさんあるのをjQueryで書きたいっていうのだとして、
じゃあ「1,2,…,10」はどこから出てきたの?って話しになるから答えようがない

「inputが出現する順番に従ってcheckに渡す」とかなら>>834みたいに書いたらいい
840 : 821 - 2010/06/16(水) 09:42:27 ID:??? (+14,-30,-206)
>>839
check()内の値は確定していないんです。つまり、1か2かわからないと。

check()内の数値をPHPで出力して
どのIDのデータか判別してJavascriptで処理させたいのです。

ですので、jQueryを使わない場合は
<input type="buttpn" value="チェック" onclick="check(<?php echo $id ?>);">
function check(val){
switch(val){
case "1":
/* 1の場合の処理 */
break;
case
/* 2の場合の処理 */
break;
}
}

と言うように、check()に渡される値に対して処理を分岐させられます。
inputが出現する順番に従って全て渡したり、inputが複数あるのではありません。

つまり、「ボタンを押してそのボタンから渡される数値によって処理を分岐したい」
と言う事をjQueryでどう書けば良いか分からず、質問させていただきました。
841 : Name_Not - 2010/06/16(水) 11:40:49 ID:??? (+63,+24,-30)
それjQueryの構文とか関係ないやん
>>836で終了
842 : 821 - 2010/06/16(水) 12:23:34 ID:??? (+52,+29,-26)
その「引数を渡す」という書き方がjQueryだと全く分からないのです・・・
843 : Name_Not - 2010/06/16(水) 12:24:54 ID:??? (+22,-11,-22)
だからjQuery関係ないって
JavaScriptの基本だろ
844 : Name_Not - 2010/06/16(水) 13:13:13 ID:??? (+33,-30,-56)
>>840
それなら>>830
$("input[type="button"] ").click(function(){
check(<?php echo $id ?>);
});
これで解決なんじゃなくて?
845 : Name_Not - 2010/06/16(水) 13:49:21 ID:Xo5qi2zB (-2,+29,-21)
>>842
言いたいことはわかったけど、引数が何によって決まるかを
書いてくれんと答えようがないっす。
846 : 821 - 2010/06/16(水) 13:50:08 ID:??? (+62,+29,-32)
>>844
もちろんそれで解決するんですが、
Javascriptを外部ファイルにしたい時は無理です。

何か引数を渡す方法があると思うんですが、
無い場合はjQueryを使わない方法でやります。
848 : 821 - 2010/06/16(水) 14:02:16 ID:??? (+59,+29,-53)
>>847
ありがとうございます。結局はこうするしかないと言う事ですね。
そしてjQueryを使わない方が速いと。

なんでもjQueryにすればいいわけではないですね、納得しました。
849 : Name_Not - 2010/06/16(水) 14:54:29 ID:??? (+11,-29,-55)
document.writeでスクリプト要素を書き出してjQueryを読み込ませると
そのスクリプト内で$(document).ready()などが使えません
全てのHTMLヘッダにjQuery読み込みのタグを追加するしかないのでしょうか?
850 : Name_Not - 2010/06/16(水) 15:54:25 ID:??? (+7,-30,-97)
>>821
$("input[type="button"] ")[0].onclick()ではないのか?
ぱっと読んだ限りだと「jQuery(というかjs)でボタンを押したことにしたい」
ということだと思ったんだけど。>>843とかもこう思ったハズ。
が、>>848では違うと否定されているという・・・

>>849
jQuery書き出しとreadyでscriptタグ分ければいけるんじゃないのか?
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について