2012-08-06 101 views
1

ajax看起来像jQuery的:点击关闭

// 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'); 
    } 
} 
  • 当警报删除div标签当我保存按钮点击我获得成功的消息为

视频成功保存X(十字标志)

  • 我点击交叉,现在通知了
  • 当我再次保存点击按钮,没有任何反应,我看到萤火虫抱怨 No elements were found with the selector: "#alerts"

  • 我的猜测是点击十字标记完全从DOM中删除div="alerts"标记。这是对的吗?

问题 - 我怎样才能得到正确的行为。点击在十字标记删除通知格,点击按钮来创建创建通知格再次

+0

哪里是你当你点击你的警报的紧密联系代码插件解决这一问题? – MrOBrian 2012-08-06 21:47:12

+0

我什么也没做,我依赖'alerts.append('×');' – fullstackcrash 2012-08-06 21:51:20

+0

可能你会停止在每个问题中告诉twitter bootstarap?它现在看起来像广告。并让ppl忽略问题,即使它简单js问题 – 2012-08-06 21:57:13

回答

1

其实根据this当您单击x插件删除div中,当您尝试选择div再次使用var alerts = $('#alerts');关闭后,一旦div不存在于dom中。

插件的一部分,负责密切/删除元素

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

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

尝试创建每次(ID为alerts)动态股利和要在其中放置其追加到身体,它可能工作。

+0

感谢您的帮助,我得到了正确的方向和http://stackoverflow.com/questions/10082330/dynamically-create-bootstrap-alerts-box-through-javascript – fullstackcrash 2012-08-06 22:52:20

+0

欢迎您,并感谢您的链接:-) – 2012-08-06 23:02:13

+0

这里有另一种方法:http://stackoverflow.com/questions/20494887/my-bootstrap-alert-will-not-display-after-being-closed/20495097#20495097 – Sk8erPeter 2014-06-10 22:48:21

1

正如谢赫Heera说,你可以通过改变

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

function removeElement() { 
    $parent 
    .trigger('closed') 
    .hide() 
} 
+1

所以你建议黑客“核心”?馊主意。 – Sk8erPeter 2014-06-10 22:42:39