1

我正在尝试设置一个表单,用户可以从城市列表中选择而不是输入它。我的问题是第一个选择很好,但是,在第二个选择中,如果我:

单击相同的输入- 选择已记录 += 1,因此在第二次调出“出发”城市时,它会记录两次;第 3 次、3 次等。
单击另一个输入- 选择记录了很多次,并将数据输入到两个输入中。

我很确定这是一个“这个”问题,所以我已经在控制台中记录了这个问题以便更好地查看它。我知道我可以轻松地制作 2 个单独的列表并分别引用每个列表,但我想为什么要重复相同的列表两次。我也不确定标记在语义上是否正确(或者只写一次这个列表在语义上是否正确)。谢谢你。

http://jsfiddle.net/GDRFt/

4

1 回答 1

2

$this 变量的范围似乎有问题,如果将它定义为全局变量,它应该可以工作:

var $this;           
$('.citylist').hide();

$('.depcity, .retcity').on('click', function () {
    $this = $(this);
    $('.citylist').show().on('click', 'li', function () {
        console.log($this);
        $this.val($(this).html());
    });
}).blur( function () {
    $('.citylist').fadeOut();

});

但是我必须说你的方法对我来说似乎很奇怪。使用两个独立的选择元素不是更好吗?如果在项目生命后期城市列表出现分歧怎么办?

于 2012-09-19T07:01:43.277 回答