新用户在这里,尝试学习我认为非常基本的东西。但是我遇到了这种情况,我想在已经准备好的数组中填充谷歌地图标记列表。
所以我想做的是放大地图中的标记,并突出显示列表中的相应元素。让地图标记和列表元素都可以点击,并做同样的事情。互相点击。没有它们永远循环。
在这种情况下,我为执行实际工作的每个处理程序运行了独立的函数。这是正确的做法。但它让我想到我对逻辑运算符的理解程度有多差。
我没有在这里输入所有代码,而是将其简化为这些基础知识,并创建了一个CodePen来说明:http://codepen.io/anon/pen/amiuy
以下是代码:
HTML:
<div id="button1">Button 1</div>
<div id="button2">Button 2</div>
<ul id="list">
<li>Item 1</li>
</ul>
使用Javascript:
$(document).on('click', '#button1', function(e) {
console.log('clicked button 1');
$(this).css('color', 'red');
$('#button2').trigger('click');
populateList('button1');
});
$(document).on('click', '#button2', function(e) {
console.log('clicked button 2');
$(this).css('color', 'button');
$('#button1').trigger('click');
populateList('button2');
});
function populateList (button) {
var list = $_('#list');
list.append('<li>New item from: ' + button + '</li>')
}
我知道我可以通过为每个点击处理程序创建变量来解决这个问题,相应地将其设置为true或false。但是这个逻辑让我遇到了麻烦。什么时候应该设置为true,什么时候应该设置为false?
编辑:我也明白我应该在点击处理程序中运行函数,让两个点击处理程序运行相同的函数,而不是相互触发。但这只是对逻辑运算符的基本理解。我只需要学习这个,不管这个例子是多么愚蠢。因为我将来可能会遇到与此类似的情况。这些东西总是让我失望。