1

ajaxのように見えます

   // send the data to the server using .ajax() or .post()
    $.ajax({
        type: 'POST',
        url: 'addVideo',
        data: {
            video_title: title,
            playlist_name: playlist,
            url: id
            // csrfmiddlewaretoken: '{{ csrf_token }}',
        },
        done: notify('success', 'video saved successfully'),
        fail: notify('error', 'There were some errors while saving the video. Please try in a while')
    });

notifyのように見える

function notify(notify_type, msg) {
    var alerts = $('#alerts');
    alerts.addClass('alert');
    alerts.append('<a class="close" data-dismiss="alert" href="#">×</a>');
    if (notify_type == 'success') {
      alerts.addClass('alerts-success').append(msg).fadeIn('fast');
    }
    if (notify_type == 'failure') {
      alerts.addClass('alerts-error').append(msg).fadeIn('fast');
    }
}
  • ボタンをクリックして保存すると、成功メッセージが表示されます

動画保存成功 ×(バツ印)

  • クロスをクリックすると、通知が消えました
  • ボタンをクリックして再度保存すると、何も起こりません。firebugが不平を言っています No elements were found with the selector: "#alerts"

  • 私の推測では、クロス マークをクリックすると、div="alerts"タグが DOM から完全に削除されます。それが正しいか?

質問 - 正しい動作を得るにはどうすればよいですか。十字マークをクリックすると通知 div が削除され、作成ボタンをクリックすると通知 div が再度作成されます

4

2 に答える 2

1

実際にはこれによると、プラグインをクリックすると div が削除されるため、プラグインを閉じた後に再度x選択しようとすると、.divvar alerts = $('#alerts');divdom

要素のクローズ/削除を担当するプラグインの一部

function removeElement() {
  $parent
    .trigger('closed')
    .remove()
}

$.support.transition && $parent.hasClass('fade') ?
  $parent.on($.support.transition.end, removeElement) :
  removeElement()

毎回( id をalerts使用して)動的 div を作成し、それを配置したいボディに追加してみてください。うまくいくかもしれません。

于 2012-08-06T22:09:00.023 に答える
1

Sheikh Heera が言うように、変更することでプラグインでこれを修正できます。

function removeElement() {
  $parent
  .trigger('closed')
  .remove()
}

function removeElement() {
  $parent
  .trigger('closed')
  .hide()
}
于 2012-09-05T15:42:33.130 に答える