クリック可能なマップから入力を受け取り、そのデータを使用してラッパーdivに隠されたデータコレクションを表示または非表示にするスクリプトを作成しました。スクリプトは実際には機能しませんし、私が間違って何をしているのか分かりません。スクリプトは、参考のために以下の通りです:jQueryでの表示
function createCallback(i){
return function(){
jQuery(".stateText").addClass("hidden");
jQuery("#st_" + i + "-1").toggleClass("hidden");
};
};
jQuery(document).ready(function ($) {
for (let i = 1; i < 50; i++) {
$("#st_" + i).click(createCallback(i));
};
});
私の推論の背後にある考え方は、彼らのアルファベット順(例えばアラバマ州= ST_1、など)に対応するIDを割り当てられている50州以上のスクリプト反復していることです。
各状態の各データは、(st_i-1の形式の)一意のIDを持つ隠し要素として開始されます。イベントが発生すると、クラス 'statetext'を持つ他のすべての要素を非表示にし、選択した要素のクラスを切り替える必要があります。ここで
は、表示/非表示のdivのためのコードのサンプルです:
<div id="data-area">
<div id="st_1-1" class="statetext hidden">
<h4>Alabama</h4>
<ul class="experience-list">
<li>Right of Way Land Services (Pipeline, Transmission, Telecommunications)</li>
<li>Mineral Property Management</li>
</ul>
<h4>Recent Projects</h4>
<ul class="experience-list">
<li>500+ mile multistate FERC pipeline</li>
<li>700+ mile multistate FERC pipeline</li>
<li>270+ mile multistate FERC pipeline</li>
</ul>
</div>
実際のアプリケーションが正しく機能しません。クリックイベントは頻繁に発生せず、他のディビジョンは「隠れた」クラスが追加されていません。
私はここで間違っていますか?
ああ申し訳ありませんが、それは明確ではありませんでした。マップをクリックして起動したIDと関連するテキストのIDは異なっています(表示される必要があるため)。マップのクリックはidがst_1で、関連するデータのIDはst_1-1です。 – Ian
[IDのハイフンはHTML5では完全に合法です](https://stackoverflow.com/questions/70579/what-are-valid-values-for-the-id-attribute-in-html)。実際に。 HTML4でも合法です。 HTML4では有効ではない他の特殊文字です。 – cjl750