dポイントプレゼントキャンペーン実施中!

jquery.illuminateを使って、ボタンを点滅させようとしています。

あるサイトのサンプルコーディングを参考にして、作ってみました。

実行させると、jquery.illuminateの中の rgb2hex()で「1」が無効のエラーが出ます。
具体的には、下の
original_color = rgb2hex(obj.css('background-color'));で、
cssのbackground-colorが亘っていないためのようで、
return hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);がエラーとなってしまいます。

return this.each(function() {
obj = $(this);
if(obj.is("input")){
if(obj.css('border') == ''){ obj.css('border', 'none') };
}
dead = false;
original_color = rgb2hex(obj.css('background-color'));
}

function rgb2hex(rgb) {
rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
function hex(x) {
return ("0" + parseInt(x).toString(16)).slice(-2);
}
return hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}


プログラムコーディングを一部割愛して表示します。

どこが間違っているのか教えてください。
よろしくお願いします。

<html>
<head>
<title>工事実行予算管理システム</title>
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/common/kjiact.css">

<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS">
<jsp:useBean id="MNT2000_00Form" scope="request" class="jp.co.nics.kjiact.web.MNT2000_00Form" />

<Script type="text/javascript" src="common/jquery-1.9.1.js">
</Script>
<Script type="text/javascript" src="common/jquery-ui-1.10.2.custom.min.js">
</Script>
<Script language="JavaScript" src="common/jquery.illuminate.0.7.js">
</Script>

<Script language="JavaScript">
$('#next_btn').illuminate();
</Script>

<!-- CSS -->
<style media="screen,projection" type="text/css">
#next_btn {
background:#333333;
padding:20px;
color:#ffffff;
width:400px;
}
</style>
</head>
<body >

<td width="15%" align="left">
<div id="next_btn"><input type="button" class="next_btn" name="next" value="次へ(代価表)" onClick="toDetail();"/></div></td>

</body>
</html>

A 回答 (2件)

ANo1です。



>あるサイトのサンプルコーディングを参考にして、作ってみました。
単に設置したいだけなら、設置サンプルをそのまま実行してみて動くかどうか試してみた方が早そう。
それで動くなら、そこから変えていけばいいし、動かないなら設置方法を間違えているか、そのライブラリがご使用のブラウザに対応していないとか…

jquery.illuminateって全然知りませんが、通常のライブラリではイニシャライズはDOM Ready後に設定するものが多いと思いますけれど、jquery.illuminateは自前で待つようにできているのでしょうか?
単に設定して動かないというのなら、こちらの方が怪しいですね。
jquery.illuminateの使い方と、設定のしかたを確認してみてください。

ご質問自体が何なのか、よくわからなくなりましたけれど、

>rgb2hex()で「1」が無効のエラーが出ます。
#1の回答は、ご質問文の前半に対する回答です。

CSSの指定方法を言っているのではなく、obj.css('background-color') で返される値はブラウザによって異なる可能性が高いということを言っているだけです。(もちろん指定方法にもよりますが)
一方で、関数 rgb2hex(rgb) はrgb( )形式しか受付ないようになっているみたいなので、大丈夫?って話。
ご提示の部分だけでは、this値に何が入っているのかわかりませんが(多分DOM要素のjQueryオブジェクトかな)、イニシャライズ時にrgb形式に読み替えて再指定しているのならよいですけれどね。
    • good
    • 0

よくわかってないし、試してもいませんが…




obj.css('background-color') をノーチェックでrgb( )形式と仮定しているようですが、#xxxとか#xxxxxxとか色名とかが返ってくる可能性があるのではないでしょうか?
全てrgb( )に変換して戻してくれるんでしたっけ?

そのあたりを確認してみてください。(はずれてたら失礼)
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

CSSのbackground-colorに何をセットしても(#○○○でもBLUEでも)同じ結果です。
jquery.illuminateにalertを入れて確認しましたが、空白でした。

よろしくお願いします。

お礼日時:2013/04/11 10:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!