这是我的代码 - 相当简单:
$(document).ready(function(){
$(".location").each(function(){
$(this).click(function(){
$("map").hide();
var class = $(this).attr("data");
$(".location").removeClass("activeLocation");
$(this).addClass("activeLocation");
$("." + class).show();
})
})
});
HTML
<div id="locations">
<div class="location activeLocation" data="brian">1205 S 75th St</div>
<div class="location one" data="mark">6603 A Royal Street</div>
<div class="location" data="dan">4725 Merle Hay Rd</div>
<div class="location" data="andy">62 Soccer Park Road</div>
<div id="mapviewer" class="brian map">Map to 1205 S 75th Street</div>
<div style="display: none;" id="mapviewer" class="mark map">Map to 6603 A Royal Street</div>
<div style="display: none;" id="mapviewer" class="dan map">Map to 4725 Merle Hay Rd</div>
<div style="display: none;" id="mapviewer" class="andy map">Map to 62 Soccer Park Road</div>
</div>
如果我注释掉两行,一切正常:
var class = $(this).attr("data");
$("." + class).show();
没有这两行注释,根本没有任何 Action 。这两行代码对我来说看起来不错。 我错过了什么?
最佳答案
class
是一个 reserved word (for future use) [MDN] .使用另一个变量名称(例如 cls
)。
此外,您应该使用 HTML5 data-*
attributes 而不是使用自定义 HTML 属性.
关于javascript - 与 addClass 和 show 相关的 jQuery 代码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769325/