0

私がやろうとしていることを説明する長い投稿がありましたが、それは必要ではないと思うので、これを簡単にします。ZurbFoundationがDatatablesと連携できるように取り組んでいます。ドロップダウンメニューを除いて、それはかなり簡単でした。私はこれをjs初心者として機能させるのに少し苦労しました。Foundationドロップダウンの一般的な構文は次のとおりです。

<label for="customDropdown">Dropdown Label</label>
<select style="display:none;" id="customDropdown">
  <option select="selected">This is a dropdown</option>
  <option>This is another option</option>
  <option>Look, a third option</option>
</select>
<div class="custom dropdown">
  <a href="#" class="current">This is a dropdown</a>
  <a href="#" class="selector"></a>
  <ul>
    <li class="selected">This is a dropdown</li>
    <li>This is another option</li>
    <li>Look, a third option</li>
  </ul>
</div>

問題が発生したのは、ULをクリックするとテーブルの長さが発生するようにイベントリスナーが起動するため、テーブルの長さが以前に選択した長さで更新されることです。FoundationJSはULLIを更新するものであるため、FoundationがクラスをLIに適用する前にコードが実行されるため、変更を検出するすべての試みが機能しません。

したがって、テーブルを更新するには、いずれかのオプション値の変更を検出する必要があることは明らかです。

$('div#example_length form select').val()

またはLIで

$('div.custom ul li.selected').text()

.change()関数を上記にチェーンして値の変化を検出しようとしましたが、エラーが発生します。私はここでかなり迷っています。私はこれを解決するためにかなりの時間を費やしました。

編集:明確にするために、私がやろうとしているのは、ドロップダウンが選択されたときに正しい値を取得することです。値を取得しましたが、選択したばかりではなく、以前に選択したものです。Foundationの仕組みのせいで、グリーンベルトのjQueryスキルでそれを行うのに苦労しています。

ありがとう。

4

1 に答える 1

2

これをすぐに理解できないのは少しばかげています。これが学習プロセスです。

$('div.custom ul', nLength).on('click', 'li', function(event) {
foo = $(this).text();
console.log(foo);
});

これで私が発見したのは、何らかの理由で「バインド」は最初のイベントのみを検出したのに対し、「オン」はすべてのイベントアクションを検出したことです。

于 2012-07-09T16:14:48.143 に答える