テキストボックスではなく画像を表示しようとしています。私はこのサイトを見つけました:http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/と私はそれがどのように見えるのが大好きです。しかし、私が必要とするチェックボックスはfacebookとtwiterで 'share also'であるので、チェックボックスには2つの異なるイメージが必要です。複数の画像を含むカスタムチェックボックス
.checkboxfb {
width: 23px; height: 23px; padding: 0 5px 0 0;
background: url(images/files/ico_facebook_mult_sml2.png) no-repeat;
display: block; clear: left; float: left;}
.checkboxtw {
width: 23px; height: 22px; padding: 0 5px 0 0;
background: url(images/files/twitter_logo_mult_sml.png) no-repeat;
display: block; clear: left; float: left;}
私はHTMLで互いの間のクラスを区別:私は最初のCSSを変更することでそれを行うことができ
<form method="post" action=".">
<input type="checkbox" name="fb" class="styledfb" />FB <br /><br />
<input type="checkbox" name="tw" class="styledtw" />TW </form>
そして複製するスクリプト、FBcheckbox.js:
document.write('<style type="text/css">input.styled**fb** { display: none; } select.styled**fb** { position: relative; width: ' + selectWidth + 'px; opacity: 0; filter: alpha(opacity=0); z-index: 5; } .disabled { opacity: 0.5; filter: alpha(opacity=50); }</style>');
var Custom = {
inita: function() {
var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
for(a = 0; a < inputs.length; a++) {
if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "styledfb") {
span[a] = document.createElement("span");
span[a].className = inputs[a].type + "**fb**";
もちろん、他のjsファイルは 'fb'ではなく 'tw'を持ち、TWcheckbox.jsと呼ばれます。 (ここにjs全体が表示されます:http://pasionesargentas.webatu.com/js/checkbox/FBcheckbox.jsとhttp://pasionesargentas.webatu.com/js/checkbox/TWcheckbox.js)。ヘッダで
私は両方のファイルを呼び出しています:
<script type="text/javascript" src="js/checkbox/FBcheckbox.js"></script> <script type="text/javascript" src="js/checkbox/TWcheckbox.js"></script>
今面白いことは、それらの一方のみが一度に動作することです。ヘッダーでそれらを呼び出すときは、どちらの秒にしても。テストファイルはhttp://pasionesargentas.webatu.com/test1.php
お時間をいただきありがとうございます。しかし、私はまだいくつかの問題を抱えています: 'window.onload = Custom.init;'の構文はどうでしょうか? initaとinitbの両方を起動しますか? – cbarg
私は、変数と同じ結果としてCustomaとCustombを持っていることを実験しています:ただ2つ目が現れます! – cbarg
ちょっと@cbarg、申し訳ありません。 window.onloadを2回割り当てても同じ問題があります。最も最近実行されたwindow.onloadの割り当ては、以前の値を上書きします。その周りの方法は、次のような構文を使用することです: 'if(window.addEventListener){window.addEventListener(" load "、Customa.inita、false); } else if(window.attachEvent){window.attachEvent( "onload"、Customa.inita); } ' - 2番目のJSファイルの場合、' Customa.inita'を 'Customb.initb'に切り替えます。 – dentaku