1

都市の情報を含む div のリストがあります。私は都市のリストも持っているので、訪問者は都市をクリックでき、他のすべての都市の div は非表示にする必要があります。
訪問者が都市のリンクをクリックして戻ると、非表示の div が再び表示される必要があります。これまでのところ、私は機能していますが、ロンドンでしか機能しません。パリをクリックすると、エラーもアクションもありません。これは何が原因ですか?ありがとう

更新しました

<script language="javascript" type="text/javascript" charset="utf-8">      
function showHideDiv(city_id) {    
var divstyle = new String();    
divstyle = document.getElementById(city_id).style.visibility;    
if (divstyle.toLowerCase() == "visible" || divstyle == "") {     
document.getElementById("city_id").style.visibility = "hidden";    
document.getElementById("city_id").style.position = "absolute";             
}else{     
document.getElementById("city_id").style.visibility = "visible";    
document.getElementById("city_id").style.position = "relative";    
}    
}    
$(document).ready(function() {    
$(".city").click(function() {    
$(this).toggle();    
});    
});    
</script>    
<a href="#" id="<?php echo $city;?>" onclick="showHideDiv()" style="text-decoration:underline;">London | Paris</a></div>    
<div id="London">List of providers in London here as content</div>    
<div id="Paris">List of providers in Paris here as content</div>    
4

1 に答える 1

2

あなたのJavascriptに都市がハードコーディングされているという事実に関係していると思います。ここで「ロンドン」をエコーし​​ていると思います(PHPを見ずに):

<?php echo $city;?>

したがって、showHideDiv() が呼び出されるたびに、パリではなくロンドンでのみ呼び出されます。おそらく、id をパラメーターとして関数に渡す必要があります。

jQuery を検討することを検討してください。それはこれを簡単にします。

編集

コードを使用して、次のようにパラメーターを渡します。

function showHideDiv(city_id) {
    var divstyle = new String();
    divstyle = document.getElementById(city_id).style.visibility;
    // . . . Rest of your code. Replace all instances of <?php echo . . ?> with 
    // city_id.
}

次に、都市ごとに onclick で都市を指定する必要があります。

jQuery を使用すると、次のようなことができます。

$(document).ready(function() {
    $(".city").click(function() {
        $(this).toggle();
    });
});

そして、HTML は次のようになります。

<div id="london" class="city">List of providers in London</div>
<div id="paris" class="city">List of providers in Paris</div>
于 2013-02-08T14:50:17.290 に答える