0

私は自分のhtmlページにこの画像を持っています:

<img src="/images/deactivate.png" onclick="act_deact(this);"/>

私のjavascriptコードには次のものがあります:

function act_deact(image) {
    image.src = (image.src=="/images/activate.png" ) ? "/images/deactivate.png" : "/images/activate.png";
}

そして、最初に非アクティブ化した画像をクリックするとアクティブになりますが、2回目のクリックでは非アクティブになりません!

私のコードに問題はありますか?

JSアマチュアから:)

4

6 に答える 6

4

これは、/images/activate.png最初のクリックでsrc属性を に設定 (または変更) すると、属性が単なるものではなく/images/activate.png、サーバーアドレスのプレフィックスが付けられるためです。

ここで確認できます:http://jsfiddle.net/hGcqq/

または、独自のサーバーでは、console.log必要に応じて またはを使用しalertます。

于 2013-04-25T11:06:43.790 に答える
0

私は自分で解決策を見つけました:pそして、URLで文字列を探して条件を作る@fardjad命題を試しました

私は解決策を共有します:)

function act_deact(image) {
if(image.src.indexOf('deactivate') != -1)
   image.src="/images/activate.png";
else 
   image.src="/images/deactivate.png";
}

@ hjpotter92: チェック条件をオンにしたソリューションは、次のようにimage.alt機能します。

html:

<img alt="deactivate" src="/images/deactivate.png" onClick="act_deact(this);" />

Js 関数:

function act_deact(image) { 
    if (image.alt=="activate") {
       image.src = "/images/deactivate.png";
       image.alt = "deactivate"                                          }
    else {  
       image.src = "/images/activate.png"; 
       image.alt = "activate"
    }
}

あなたの応答をありがとう:)

于 2013-04-25T11:50:14.050 に答える
0

image.src には、相対パスで初期化されている場合でも、正規のパスが含まれています。次のような条件でフルパスを使用できます

function act_deact(image) {
    image.src = (image.src=="FULL-PATH-OF-IMAGE" ) ? "/images/deactivate.png" : "images/activate.png";
}

(完全なパスを取得するには、alert(image.src); を使用できます)

または、すべての画像に一意の名前が付いている場合

function act_deact(image) {
    image.src = image.src.match(/activate.png$/) ? "/images/deactivate.png" : "images/activate.png";
}
于 2013-04-25T11:18:22.617 に答える
0

最初のものは、次のようなブラケットです。

image.src = (image.src=="/images/activate.png" ? "/images/deactivate.png" : "/images/activate.png")

また、image.src の代わりに image.getAttribute("src") と image.setAttribute("src") を試してください。

このコードを試してください:

function act_deact(image) {
    image.setAttribute("src", (image.getAttribute("src")=="/images/activate.png" ? "/images/deactivate.png" : "/images/activate.png"))
}

編集:他の回答は絶対および相対URLの問題について教えてくれるので、 getAttribute はその問題を修正します。ここで RegExp や部分文字列を使用することはお勧めしません。

于 2013-04-25T11:22:55.807 に答える