はまった問題の最近のブログ記事

2013年2月21日

ie8、filterをかけた子要素の:hoverでのbackground-position

ひさびさ発見。

【現象】
ie8で発生。ie7は平気。
親要素にfilterで
*/filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=1,Color=#33000000,Positive=true);
-ms-filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=0,OffY=1,Color=#33000000,Positive=true)";

とかやっておく。
子要素のaを
background-position:left top;
a:hoverを
background-position:left bottom;
にした場合、
あんまりうまいことhoverが動かない。(ドラッグしたりすると動くけど、まぁ動かないとして)


【原因】
親要素のfilter imageTransformが子要素にへんな感じで引き継がれているっぽい。
aはOKで、a:hoverがNGなのでバグでしょ。



【回避方法】
aに
filter:none;
で回避。


以上!

2012年1月16日

iPhone Safari での jQuery .live()

【はまり問題】
iPhone Safari で jQuery
 .live()が動きませんね。


【詳細】
一応各バージョン
jQuery-1.7.1
iOS 5.0


【回避方法】
 .delegate() で!
シンプル。 .delegate()の方がはやいしね!

2011年8月23日

ページ内にswfがある and urlに#がある場合のタイトル挙動 ie

ちょっと前回わかりにくすぎたので反省。端的に。

【はまり問題&詳細】
■ 発生条件
ページ内にswfがある
ブラウザはie
アンカーをクリックor最近多い#でajax系

上記条件でブラウザタイトルバー(<title>)に#〜が追記される
swfをクリックすると
タイトルバーの内容は#〜に差しかわる


【原因】
IEのバグみたい


【回避方法】
回避方法はないので力業で対応するしかない

1. タイトルを書き換えるjavascript functionを用意
2. 1のfunctionをaクリック時と、swfのステージクリック時にswfから呼び出す
3. 別ページから#付きでリクエストされることがあれば、onload時に呼び出す

以上

2011年8月22日

jQuery $(this).text()のie6、7

【はまり問題】
jQuery、拾ってきた.text()が実際のテキストと異なる


【詳細】
<ul id="selectUl">
<li>テキストA</li>
<li>テキストB</li>
</ul>
<table id="selectTable">
<tr>
<td>hogehoge</td>
<td>テキストA</td>
<td>hogehage</td>
</tr>
<tr>
<td>hogehoge2</td>
<td>テキストA</td>
<td>hogehage2</td>
</tr>
<tr>
<td>hogehoge</td>
<td>テキストB</td>
<td>hogehage</td>
</tr>
<tr>
<td>hogehoge2</td>
<td>テキストA</td>
<td>hogehage2</td>
</tr>
...
</table>

というようなhtml。
目的は、liクリックでtableに同じワードがある行だけ表示。

var clickText = $(this).text();
とliのテキスト内容を入れて
tr.each()で1行ずつtdのテキストを
selectText= $(this).text();
に代入する。

if(clickText == selectText){
で表示。

ie6、7のみ動かず。
すべてfalseになる。


【原因】
text();
に余計な文字が入る。おそらく改行コード。
clickText.length() が6。
selectText.length() が5。
そりゃ一致しない。


【回避方法】
clickText = jQuery.trim($(this).text());

2011年8月20日

windows+safariでのswf

【はまり問題】
windows safari、バージョンによってswfオブジェクトがみあたらない


【詳細】
<object id="hoge01" 〜
<!--[if !IE]>-->
<object id="hoge02" 〜
<!--<![endif]-->

と通常にswfを読み込む

javascriptでswfのasを呼び出す

windows safariなら、#hoge02.asfunction()でアクセスできるはずがundefined


【原因】
win safariのバージョンによっては、最初の#hoge01に入っている模様
ver 5.1では起きず、5.0.5と5.0.1で発生。それ以外のバージョンでは未確認。


【回避方法】
どっちかにはswfオブジェクトが入ってるので、見つからなかったらもう片方を指定する。


以上

OpenID対応しています OpenIDについて

このアーカイブについて

このページには、過去に書かれたブログ記事のうちはまった問題カテゴリに属しているものが含まれています。

前のカテゴリはひとことです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

2014年9月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30