0

2倍の問題。

別の要素(B)が空の場合は要素(A)を非表示にし、Bに要素が含まれている場合はAを表示する必要があります。

そして、動的にロードされた要素に対してこれを行う必要があります。

だから私は試しました:

$(document).ready(function() {
  if ($('#mapDirections').html().trim()) {
    $('#mapReset').hide();
  }
  else
  {
    $('#mapReset').show();
  }
});

しかし、それはうまくいきませんでしたし、そうなるとは思いませんでした.delegate と live on click イベントを使用しましたが、やりたいことと組み合わせて使用​​する方法がわかりません。

4

1 に答える 1

0

#mapDirections を設定する JavaScript を制御できることを願っています。データが到着した直後に、コールバック動作を実装する必要があります。

その制御がなく、新しいデータが確率論的である場合は、新しいコンテンツのノードをポーリングする時間間隔を決定する必要があります。

たとえば、onNewMapDirections() が DOM の何らかのイベントに応答して呼び出されたとします。

function onNewMapDirections(newData) {
  $('#mapDirections').html(newData);
  //Add callback here
}

これは、ドキュメントでカスタム イベント ハンドラーをバインドしてトリガーすることで簡単に実行できます。

//Called when new directions are ready to add to DOM
function onNewMapDirections(newData) {
  $('#mapDirections').html(newData);
  $(document).trigger('checkMapDirections');
}

//Called in response to dispatched event
function onMapDirectionsUpdated(evt) {
  if ($('#mapDirections').html().trim()) $('#mapReset').hide();
  else  $('#mapReset').show();
}

//Binds event
$(document).ready(function() {
  $(document).bind('checkMapDirections', onMapDirectionsUpdated);
});

新しいマップ データが呼び出されるとすぐにコールバックを埋め込むことができない場合でも、イベント ロジックを使用して、定期的に呼び出すタイマーを実装できます。

$(document).trigger('checkMapDirections');
于 2012-01-24T20:23:58.687 に答える