1

ユーザーが都市のリストから入力する代わりに選択できるフォームを設定しようとしています。私の問題は、最初の選択で問題ありませんが、2番目の選択で次の場合:

同じ入力をクリックしました-選択+ = 1でログに記録されるため、「出発」都市を2回目に表示すると、2回ログに記録されます。3回目、3回など。
他の入力をクリックしました。選択範囲は何度もログに記録され、両方の入力にデータが入力されます。

私はそれが「この」問題であるとかなり確信しているので、私はそれをよりよく見るためにコンソールに問題を記録しました。2つの別々のリストを簡単に作成し、それぞれを別々に参照できることは知っていますが、同じリストを2回繰り返す理由がわかります。また、マークアップが意味的に正しいかどうか(または、このリストを1回だけ書き込むことが意味的に正しいかどうか)もわかりません。ありがとうございました。

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();

});

しかし、あなたのアプローチは私には奇妙に思えます。2つの独立したselect要素を使用する方がはるかに良いと思いませんか?プロジェクトライフの後半で、都市リストが分岐した場合はどうでしょうか。

于 2012-09-19T07:01:43.277 に答える