我正在创建一个小网站,允许用户浏览一些莎士比亚戏剧。我有它的工作,当用户点击播放时,播放的名称显示在标题中,播放的脚本显示在一个单独的div中。
这工作正常,但我现在正尝试将各种游戏组织到一个下拉菜单中。我将戏剧分为两类(喜剧和历史),并相应地对戏剧进行分组。
我现在遇到的问题是,一旦我通过下拉菜单点击了一个游戏,该标题中的整个游戏列表(即喜剧)将显示在标题中,而不是仅显示我选择的游戏。然而,我选择的游戏仍然在显示游戏的div中正确显示('mainOutput'div)。
基本上我需要知道的是如何设置下拉菜单,以便只有我选择的播放标题显示在标题中。希望我已经正确解释了这一点,任何帮助将不胜感激!这是我的代码......
启动播放的jquery显示:
$(document).ready(function(){ /* The code here can be modified to allow for any means of obtaining playName */
$('li').click(function(event) {
var playName = $(this).attr("id");
$("header>span").text($(this).text());
loadPlay(playName);
});
下拉菜单:
<div style="margin-left:50px;">
<ul id="menu">
<li><a href="#">Comedies</a>
<ul id="help">
<li>
<img class="corner_inset_left" alt="" src="corner_inset_left.png"/>
<li id="all_well.xml" class="comedy">All's Well That Ends Well</li>
<img class="corner_inset_right" alt="" src="corner_inset_right.png"/>
</li>
</ br>
<li id="as_you.xml" class="comedy">As You Like It</li> </ br>
<li id="com_err.xml" class="comedy">The Comedy of Errors</li> </ br>
<li id="cymbelin.xml" class="comedy">Cymbeline</li> </ br>
<li id="lll.xml" class="comedy">Love's Labours Lost</li>
<li id="m_for_m.xml" class="comedy">Measure for Measure</li>
<li class="last">
</li>
</ul>
</li>
<li><a href="#">Histories</a>
<ul id="help">
<li>
<img class="corner_inset_left" alt="" src="corner_inset_left.png"/>
<li id="hen_iv_1.xml" class="history">Henry IV, Part I</li> <img class="corner_inset_right" alt="" src="corner_inset_right.png"/>
</li>
<li id="hen_iv_2.xml" class="history">Henry IV, Part II</li>
<li id="hen_v.xml" class="history">Henry V</li>
<li id="hen_vi_1.xml" class="history">Henry VI, Part I</li>
<li id="rich_iii.xml" class="history">Richard III</li>
<li class="last">
</li>
</ul>
</li>
</div>
显示播放数据的位置:
<header><span>Shakespeare's Plays<span></span></span></header>
答案 0 :(得分:1)
这是因为您将click
事件绑定到所有li
项,包括下拉列表标题。您可以更改选择器以使其可用。
$(document).ready(function() {
$('#menu ul li').click(function(event) {
var playName = $(this).attr("id");
$("header > span").text($(this).text());
loadPlay(playName);
});
});
当然,您的代码中还有许多其他问题。
help
的元素,应该只有一个)。ul
应仅包含第一个子li
元素(您还有br
个元素,不正确。)span
中有两个header
个元素。如果您希望用文本填充它,请考虑仅使用一个(请参阅JavaScript)。