0

私のサイトでは、リンクの onclick イベントを使用して JavaScript 関数を呼び出しています (リンクは外部の php ファイルからの WHILE ループ内にあります)。PHP の WHILE ループ内の onclick は、ユーザーの画像とユーザー名を、ShowUser() という JavaScript 関数に渡します。イベントはユーザー名と写真を正しく生成し、次のように div の innerHTML 内に配置します。

<script language="javascript" type="text/javascript">
function ShowUser(userpic,username) {
var TitleDesc1 = 'Click this photo to learn more about '+username+'';
document.getElementById('UserPicHolder').innerHTML = '<img class="TipTip"    
title="'+TitleDesc1+'" src="'+userpic+'" style="width:60px; height:66px" alt="user  
picture">';
}
</script>

これは正しく動作します。ただし、ユーザーの画像をクリック可能にしようとすると (onclick #2) (href を追加して) ユーザーのサイト統計を表示しようとすると、関数は統計ボックス (onclick#2 (DisplayUserStats ) JavaScript 関数内):

<script language="javascript" type="text/javascript">
function ShowUser(userpic,username) {
var TitleDesc1 = 'Click this photo to learn more about '+username+ '';
document.getElementById('UserPicHolder').innerHTML = '<a href="#null"    
onclick="DisplayUserStats("'+username+'")"><img class="TipTip" title="'+TitleDesc1+'"    
src="'+userpic+'" style="width:60px; height:66px" alt="user picture"></a>';
}
</script>

関数 DisplayUserStats() が ( DisplayUserStats() として) 空の場合、予想どおり、ユーザーの統計ボックス div が表示されますが、もちろん、ユーザー名が定義されていないため、統計は未定義です。DisplayUserStats() 内に任意のコンテンツが配置されているように見える場合にのみ、Stats Box div が開きません (たとえば、DisplayUserStats(dummystring) が Stats Box div を開きません)。他のいくつかの連結を試したことに注意してください (これは間違っていたと思います)たとえば、+username+ '+username+' username などです。変数usernameを関数 DisplayUserStats() に渡す方法を誰かが明らかにしてくれませんか?

4

1 に答える 1

2

インライン イベント ハンドラを使用しないと、見た目がすっきりします。しかし問題は、二重引用符の中に二重引用符があることです (したがって、壊れた HTML です):

<a href="#null" onclick="DisplayUserStats("SomeUsername")">...

この醜いことでそれを修正できます:

onclick="DisplayUserStats(\''+username+'\')">

また、JavaScript 文字列を定義するときに改行しないでください。コードが失敗します。

于 2013-11-13T21:06:13.087 に答える