+ JavaScript の質問用スレッド vol.98 +
ゴメン何言ってるのかわかんない
954 :
Name_Not_Found:2012/04/07(土) 23:50:06.72 ID:v4P1HbSx
955 :
Name_Not_Found:2012/04/07(土) 23:56:14.80 ID:v4P1HbSx
function __bind(){
$("#show").click(function() {
alert(n);
});
956 :
954:2012/04/07(土) 23:56:52.73 ID:v4P1HbSx
まちがえた、
>>948 どんなプロパティを持っててどんなイベントが使えて
っていう情報が見れないですよそこわ
新スレは975超えたら。テンプレは同じで。
959 :
Name_Not_Found:2012/04/08(日) 09:19:12.80 ID:DqmcrH7E
>>954 純正forEachのいかんところは
文字数多い上にShift押しもイチ文字混ざっているところだ
>>950 動作確認してないので、ちょっとアレだけど
いちばん上のコンストラクタのとこのは、俺は単純に次のように書いちゃう。
var Int = function(i) {
this.n = i;
var self = this; // ハンドラの外でthisを別の変数に保持
$("#show").click(function(){ alert(self.n); });
};
いちばん下の実行部分ならこんな風に。こっちの場合は"定石"といってもいい気がするけどどうか
$("#succ").click(function() {
int.succ.apply(int); // 呼び出し先のthisを指定して呼び出す
});
あとclick()の第一引数にコールバックに渡すデータを指定できたんじゃなかったかな?
コンストラクタのをそれで書くと、こんな感じで書けるんでは↓
※あくまでも擬似コード。コールバックではイベントオブジェクトから取り出せたような記憶
$("#show").click({self:this}, function(e) { alert(e.self.n) });
イベントバインド系メソッドに渡されたデータを保持するのはe.dataプロパティ
フォーム部分
<form name="abc">
<input type="radio" name="test[0]"><input type="radio" name="test[0]"><br>
<input type="radio" name="test[1]"><input type="radio" name="test[1]"><br>
...
</form>
スクリプト部分
for(var i=0; i<2; i++){
document.abc.elements['test[i]'][0].checked = true;
}
○○
○○
とあるラジオボタンに
●○
●○
とチェックをつけたいのですがうまくいきません
document.abc.elements['test[0]'][0].checked = true;
document.abc.elements['test[1]'][0].checked = true;
↑
●○
●○
や
document.abc.elements['test[0]'][i].checked = true;
↑
○●
○○
なら動くのに何故でしょうか
お願いします
>>962 全部「test[i]」という同じ名前になってるからでしょ。自分で「test[i]」って書いてるじゃん。
そのiだけ自分の脳内で0や1に置き換わってくれるとか思うのは勝手な勘違いなだけ。
対処方法は過去スレ見れば山のように前例があるから。
document.abc.elements['test[' + i + ']'][0].checked = true;
というオチでしょ?
965 :
962:2012/04/08(日) 17:27:57.09 ID:???
>>963-964 解説と回答ありがとうございました
[' + i + ']の + 試していましたが ' までは試してませんでした
勉強不足、失礼しました
PHPer…
Perlとかもそういった書き方できるから一概にどうとは言えんな
こんな書き方するの PHPer くらいだろ。
Perl でどんな使い方を期待して、こんな記法するんだ。
$a = 1;
print "$a 回目";
これで変数aが展開されるのはPHPもPerlも一緒
逆に
print '$a 回目';
これで変数aが展開されないのもPHP・Perl共に同じ
まさか変数展開の話をしていたとは…
それは単にプログラミング初心者のミスじゃないか。
javascriptってシングルクォートもダブルクォートも変わりないからねー
>>970 今回の問題はそれが原因だったんだから
変数展開の話しを想定するのが普通だろ
逆にどんな話を考えてたのか聞きたいわ
>>972 え?お前↓の書き方見て、Perl 使ってるかも、とか思うの?w
<input type="radio" name="test[0]">
>>973 おい、くだらねえ連投してるお前、さっさと新スレ立てろよ
ありがとぅー!
何この流れ、、、
ネットで調べながら作ったのですが、詰まってしまいました。どなたかお力を貸していただけないでしょうか・・・
【環境】 IE8, Firefox, chrome
【何をしたのか】 マウスクリック
【エラーメッセージ】 Uncaught TypeError: Cannot set property 'src' of null
【期待する結果】 一つのものがあって、カラーヴァリエーションをそれぞれ表示させたいと考えています。
そのために画像の切替をjavascriptで行おうとしましたが、
同ページに一つだけの場合なら上手くいくのですが、複数になると全く動きません。
【サンプルHTML】
<img src="./images/oya_a_01.jpg" name="oya_a" /> //切替画像その1
<img src="./images/01.jpg" onClick="chgImg('oya_a',0)"/>
<img src="./images/02.jpg" onClick="chgImg('oya_a',1)"/>
<img src="./images/oya_b_01.jpg" name="oya_b" /> //切替画像その2
<img src="./images/03.jpg" onClick="chgImg('oya_b',2)"/>
<img src="./images/04.jpg" onClick="chgImg('oya_b',3)"/>
【サンプルjavascript】
<script type="text/javascript">
if(document.images) {
var imgs = new Array();
imgs[0] = new Image(); imgs[0].src ="./images/01.jpg";
imgs[1] = new Image(); imgs[1].src ="./images/02.jpg";
imgs[2] = new Image(); imgs[2].src ="./images/03.jpg";
imgs[3] = new Image(); imgs[3].src ="./images/04.jpg";
}
function chgimg(imgNo, imgname) {
if(document.images) {
document.images[imgNo].src = (imgs[imgname]) ? imgs[imgname].src : imgname;
}
}
chgimgの文字の大小
chgimgの引数の順序
>>979 ありがとうございます。
ご指摘いただいた修正をした結果、エラーはでなくなりましたが、
正常な動作はしませんでした・・・。
クリックした画像の一個手前の画像が切り替わってしまいました
chgimgの引数の順序 ?
982 :
Name_Not_Found:2012/04/09(月) 14:31:16.77 ID:aJhgikaX
>>980 クリックする度にその対象となる要素を探しに行くのではなく
まず最初に親子画像の要素をカップリングしておいて
それからイベントハンドラを設定すればいいよ
親子画像の要素をカップリング?
984 :
Name_Not_Found:2012/04/09(月) 15:50:22.50 ID:muZTNTDO
srcが変わるimg→親、クリックするimg→子、つー意味です
こゆのどーよ
<img src="./images/oya_a_01.jpg" name="oya_a" /> //切替画像その1
<img src="./images/01.jpg" onClick="document.images.oya_a.src=this.src"/>
<img src="./images/02.jpg" onClick="document.images.oya_a.src=this.src"/>
987 :
Name_Not_Found:2012/04/09(月) 20:49:01.84 ID:5+GebVdF
javascript で、結果が小数点にならない、普通のプログラミング言語で普通の動きをする
割り算はないのですが
p = (p - p % 9) / 9;
こうすれば見た目小数点は入ってないようではありますが、
こういうトリック使わない除算はありますか
p = Math.floor(p) / 9;
p = Math.floor(p / 9);
>普通のプログラミング言語で普通の動きをする
この「普通の動きをする普通のプログラミング言語」を列挙してください
なでしこ言語
sed「コマンド」という表現に違和感がある。
スレ違い
残尿感がある。
>>987 「普通のプログラミング言語」なんて幻想。たまたま世界最初の高水準言語FORTRANがそうなって
いて、多くの言語が真似しただけ。著名な言語ではPascalとかCommonLispとかはそうなってない。
だからJavaScriptなんかごく「普通」だ。CとJavaとC++に似てるのが普通とかいうのは傲慢。
話がよく分からないから各言語での結果を書いてよ
>>997 普通とか言うくらいでいちいち反応して荒らすな
心が狭い奴らだな
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。