Javascript:使用.click方法时出现问题
Javascript: Issue when using .click method
首先这里是与代码
对应的html<div class="grid_12">
<ul id="categories">
<li class="filter">Categories:</li>
<li id="ny"><a href="#newYork" onclick="getImageCategories()"> New York</a></li>
<li id="sc"><a href="#spanishCities" onclick="getImageCategories()">Spanish Cities</a></li>
<li id="gv"><a href="#aGlasgowViewpoint" onclick="getImageCategories()">A Glasgow Viewpoint</a></li>
<li id="sch"><a href="#someChurches" onclick="getImageCategories()">Some Churches</a></li>
<li id="bh"><a href="#barcelonaHighlights" onclick="getImageCategories()">Barcelona Highlights</a></li>
<li id="mp"><a href="#martin's Pictures" onclick="getImageCategories()">Martin’s Pictures</a></li>
</ul>
</div>
<!-- end .grid_12 - CATEGORIES -->
这里的想法是,当每个这些链接被按下时,var id被更改为正确的数字,这取决于点击了
这是我用来做这件事的代码
if (nyView.click) {
id = 1;
} else if (scView.click) {
id = 2;
} else if (gvView.click) {
id = 3;
} else if (schView.click) {
id = 4;
} else if (bhView.click) {
id = 5;
} else if (mpView.click) {
id = 6;
}
视图变量只是定位器,用来找到正确的div元素,所以它们是这样做的
nyView = document.getElementById('ny');
scView = document.getElementById('sc');
gvView = document.getElementById('gv');
schView = document.getElementById('sch');
bhView = document.getElementById('bh');
mpView = document.getElementById('mp');
我的问题是,无论我点击的元素,我只得到原来的…对我来说,代码似乎把它们组合在一起,所以当你点击ny链接时,它会把这个作为所有其他div的点击。这是测试当我点击任何链接innerHTML在所有div被执行…我完全不知道为什么会这样,非常感谢您的帮助
- 你不需要内联事件处理程序
- 可以使用
event delegation
- 使用
index
获取ul
中被点击的元素索引