2011年4月29日金曜日

[Python]break文

break文1つで、抜けるループは1つだけ。

つまり、nested roop内でbreak文を使った場合も、抜け出すのは1つのループのみ。

list = [[0,1,2],[3,4,5],[6,7,8]]
for x in range(3):
for y in range(3):
if list[x][y]>3:
list[x][y] = 10
break
print list

>>
[[0, 1, 2], [3, 10, 5], [10, 7, 8]]

この例でいうと、yのループは抜けてもxのループは続いているということ。

2011年4月25日月曜日

GoogleMapをdisplay:noneで初期化するとバグる件

ボタンを押したらGoogleMapが表示されるというコードを書いたのだが、なんどやっても表示がバグる。

ググり続けること30分、visibilityを使え的なコメントがあったので、試すと成功。

てことで、グーグルマップを隠しておくときは、

display: none;

ではなく、

visibility: hidden;

にしておいて、jQueryでは、

$("#map-canvas").css("visibility","visible");

のように書けばよし。

2011年4月18日月曜日

Android開発環境構築、行き詰った個所まとめ。

・Android SDKインストール時に「javaが入ってない」と言われて進めない。

確か、JDK has not been found とかなんとか。

いや、たしかにJDKを入れたはずなのに…。なぜだ!!

これはなんとびっくりインストーラーのバグらしい。

一旦backしてからnextすると、認識されてます。なんだったんだこのバグ。

詳細はここに書いてありました。

ググっても意外とすぐに発見できなかったので、ここで挫折する人もいたんじゃないかと。


・付属のサンプルコードを実行できない他。

creating project from existing sourceができかったり、

SDK and AVD manager のInstalled packageをアップデートしようとしたらアクセス拒否されましたとか。

ググりまくって、やっとstack overflowで同じ問題に苦しんでる人発見。ここ。

「windows7だったらProgram Fileへのアクセス権ないかもよ。管理者認証してみ。」

とあるので、eclipseを右クリックから「管理者として実行」でやったら、アクセスできたあ!!

毎回やるのめんどくさいので、右クリック→プロパティ→互換性→管理者としてこのプログラムを実行するにチェックを入れる。これでOK。


以上、心が折れるくらい行き詰った個所でした!!w

2011年4月3日日曜日

[jQuery]HTMLタグのidを動的に生成(or変更)する方法

例えば、Twitterの新しいつぶやき一つ一つにidがついていくが、JavaScriptでどうやってidを生成、変更しているのかという話。


jQueryのattr()を使う。

もし、idを'oldid'→'newid'に変更したいのなら、

$('#oldid').attr('id', 'newid');

とすれば良い。


しかし、もっと動的に、生成された番号などをid内に入れたいときなどは、

例えば、attr(function(i){...})を使う。

以下はClick meボタンを押すと新しいpタグが挿入されていき、TESTボタンをクリックすると、上から4番目のものの背景が赤になるというコード。

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#button1").click(function(){
$("div.contents").prepend("<p>This is test.</p>");
$("p").attr("id",function(i){
return "num"+i;
});
});

$("#button2").click(function(){
$("p#num4").css("background-color","red");
});

});

</script>
</head>

<body>
<button id="button1">Click me</button>
<button id="button2">TEST</button>
<div class='contents'></div>
</body>
</html>


jQueryのattr()関数についてはここを参照。

ブログにHTMLのタグを文字として貼り付ける方法。

ブログと言えども、HTMLは使えるので、タグを実体参照変換する必要があるようだ。

ここで自動変換してくれます。

[jQuery]セレクター:n番目の要素だけをセレクトするeq()フィルター

eq()filterを使う。
例1:2番目のpだけを選択したい場合。
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('p:eq(1)').css("background-color","red");
});
</script>
</head>
<body>
<p>This is 1</p>
<p>This is 2</p>
<p>This is 3</p>
</body>
</html>


これを使えば動的に生み出したhtmlタグにも適用可能。
例2:動的に生み出した3番目のpを選択
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#button1').click(function(){
        $('.content').append('<p class="hello">Hello</p>');
    });
    $('#button2').click(function(){
        $('p.hello:eq(2)').css("background-color","red");
    });
});
</script>
</head>
<body>
<button id='button1'>add</button>
<button id='button2'>test</button>
<div class='content'></div>
</body>
</html>