MAX Factory

Icon

Flash lite(携帯Flash)、Flex、widgetなどの技術メモ

[jquery]IE8でtrに.toggle()が効かない

jqueryを利用してテーブルをアコーディオンのように列を表示するUIを作成していて、
IE8だけが列を開くことができなかった。
jqueryのバージョンは1.3.2です。

下記のようにjqueryのtoggle関数を利用して実装していました。
※利用しているソースは参考させてもらった下記のサイトから抜粋しています。
http://stackoverflow.com/questions/975153/jquery-toggle-not-working-with-trs-in-ie

//html
<a id="readOnlyRowsToggle">Click</a>
<table>
  <tr><td>row</td></tr>
  <tr><td>row</td></tr>
  <tr class="readOnlyRow"><td>row</td></tr>
  <tr class="readOnlyRow"><td>row</td></tr>
  <tr class="readOnlyRow"><td>row</td></tr>
</table>


//javascript
$(document).ready(function() {
    $(".readOnlyRow").hide();
    $("#readOnlyRowsToggle").click(function() {
        $(".readOnlyRow").toggle();
    });
});

toggle関数が効かない原因は、
$(classname).is(“:visible”)
が必ずtrueを返すためにshow()が実行されないため。

if($(classname).is(":visible"))//IE8 always evaluates to true.
     $(classname).hide();
else
     $(classname).show();

なので、下記のようにtoggle関数を利用しない方法で実装する。

var elem = $(classname)[0];
if(elem.style.display == 'none')
     $(classname).show();
else
{
     $(classname).hide();                      
}

これでIE8も問題なく動作した。

◯参考サイト
http://stackoverflow.com/questions/975153/jquery-toggle-not-working-with-trs-in-ie

[jquery]JQUERY ALERT DIALOGS

JQUERY ALERT DIALOGS
こちらを利用するとjsのダイアログ(alert,confirm,prompt)のviewを自由に変えることができます。

今回利用したのは、viewの変更目的ではなくjAlert関数を利用した際に、

1.画面上のボタンなどのイベントを無効としてくれる
2.alertのボタンクリック時のイベントハンドリングが容易
jAlert(“メッセージ”, “タイトル”, function(){/*クリック時のイベント*/});

という点で利用しました。

※IE6でダイアログの幅が横一杯に広がってしまうのは、問題点としてあるとのことです。

○利用方法とサンプルをアップしているブログ記事がありました。
http://javascript.webcreativepark.net/library/jquery_alert_dialogs

[js]アルファ画像(透過png)を使う

ブログのロゴは透過png画像なのですが、IE6では表示が崩れてしまう。
そこで、IE6でも崩れないようにしてくれるjsライブラリを利用しました。

○アルファ画像を扱うJSライブラリ
alphafilter.js

設定も簡単です。

alphafilter.jsを読み込んで、


<script type="text/javascript" defer="defer" src="./alphafilter.js">

透過png画像にalphafilterクラスを適応させる。


<img src="/images/logo.png" class="alphafilter" alt="" />

○参考サイト
http://blog.webcreativepark.net/2007/02/01-233315.html

[javascript]color picker

ブログパーツの背景色をユーザが設定できる管理画面(htmlページ)を作成しています。
一般ユーザにRGB16進で記述させるって厳しいので、
カラーがUIでわかりやすく表現する方法を探してました。

で、ありました。
JSで作成されたいけてるカラーピッカーを発見しました。(有名なのかもしれないけど)

○color picker
http://www.skuare.net/test/proPhotoColor.html

サンプルソースの配布もしているので、設置が簡単でした。
ただ、重い。。。
表示に時間がかかってしまうので、利用したい人だけが別ウインドウを開いて使用してもらうようなナビゲーションにしました。
(Flashで作成したほうが軽いんでしょうね。。)

あと、サンプルではJSファイルと画像ファイルが相対パス指定になっています。
絶対パスで利用したい方は、ダウンロードしたファイルから以下の点を修正します。

○index.html(7行目?11行目と142行目?174行目)
cssとimageを読み込みしているパスを絶対パスに変更

○colorpicker.js(9行目?13行目)

Refresh.Web.DefaultColorPickerSettings = {
startMode:’h',
startHex:’ff0000′,
clientFilesPath: ‘img/’
};

上記の箇所が初期設定になっていますので、
clientFilespathを「img/」から自分の環境パスに変更で完了

[javascript]別ウインドウにPOSTでデータ送信

とある案件で別ウインドウで開きながら、
開く前のFormデータをPOSTで送信することが必要になった。

■対処法
○formタグ

<form name=”form2″ action=”./preview” method=”post” target=”preview” onsubmit=”openPreview(‘./privew’, ‘preivew’);return false;”>

○javascript

function openPreview(url, name)
{
    preview = window.open(url, name);
    window.preview.focus();
}

別ウインドウのウインドウ名を指定して(例ではpreivew)、
formで送信する際にtargetを別ウインドウで開いたウインドウ名(preview)を指定してあげればOK.

参考サイト
http://webmag.dnw.jp/2007/04/post_25.html

 

2010年9月
« 7月    
 12345
6789101112
13141516171819
20212223242526
27282930  

プロフィール

Author:max

ディレクター(モバイルサイト・PCサイト・アプリ)

場合によっては、開発/制作業務もやっています。

元クリエイターなので趣味が面白そうなものを作る事

◆受賞歴
モバイルウィジェットコンテスト

Yahoo×SoftBank主催

[アドビシステムズ賞(銀賞)]
ペパボクリエイターズコンテスト 戻るボタンアワード

paperboy&co.主催

[ムームードメイン賞]

Twitter

Twitter Updates

    follow me on Twitter