2014-09-12 44 views
0

我正在使用jquery toastr。到目前爲止,一切都很好。我可以顯示和關閉敬酒罰款。 我希望能夠唯一標識每個烤麪包。並在onHidden函數中使用該唯一標識符。有沒有人做過這個?關閉toast封閉的toast的toastr類或div的關閉事件是更好的選擇嗎?jquery toastr on隱藏函數

var mes = 'My name is Inigo Montoya.<input type="hidden" id="announcementId" value="1"/>' + 
     '<input type="hidden" id="userId" value="'+ userid +'"/> '; 

    var mes1 = 'Princess Bride<input type="hidden" id="announcementId2" value="2"/>'+ 
     '<input type="hidden" id="userId1" value="'+ userid +'"/> '; 

    var mes2 = 'Man in Black<input type="hidden" id="announcementId2" value="3"/>'+ 
     '<input type="hidden" id="userId2" value="'+ userid +'"/> '; 

    var mes3 = 'Inconcivable!<input type="hidden" id="announcementId3" value="4"/>'+ 
     '<input type="hidden" id="userId3" value="'+ userid +'"/> '; 

toastr.options = { 
    "closeButton": false, 
    "debug": false, 
    "positionClass": "toast-top-full-width", 
    "showDuration": "300", 
    "hideDuration": "1000", 
    "timeOut": "0", 
    "extendedTimeOut": "0", 
    "showEasing": "swing", 
    "hideEasing": "linear", 
    "showMethod": "fadeIn", 
    "hideMethod": "fadeOut" 
}; 

toastr.options.onHidden = function(item) { 
//GET UNIQUE TOAST ID'S HERE 
     var val = 1;//$this.find("#announcemntId").val(); 
     alert("CLOSED " + item); 
} 

toastr.error(mes, "First Toast"); 
toastr.error(mes1, "Second Toast"); 
toastr.error(mes2, "Third Toast"); 
toastr.error(mes3, "Fourth Toast"); 

回答

0

如果有人遇到這種情況,以後是我的解決方案。 從json加載的吐司。每個吐司都有自己獨特的div(info,error,warning,succuess),每個吐司都有一個分配給它的類。我使用我需要的值在吐司中的每條消息中分配了隱藏屬性。

 $.ajax({ 
     dataType: "json", 
     url: '/announcements/getannouncements/userid/' + userid, 
     success: function(data) { 
     $.each(data, function(i, val){ 
      var mes = '<input type="hidden" id="userId" value="'+ userid +'"/>' + 
        '<input type="hidden" id="announcementId" value="'+ val.id +'"/>' + 
        'Client: ' + val.client + '</br>' + val.announcement; 
      var title = val.title; 
      toastr.error(mes, title); //info, success, warning, error 
     }); 
    }, 
    error: function() { 
     alert("Could not get announcments"); 
    } 
}); 

由於關閉敬酒,當你點擊的div我可以捕捉到被點擊的DIV類,發現公告和用戶ID及瓶坯我的邏輯發生

//class could be warning, error, info, success : we only use error 
    $(".toast-error").live('click', function() { 
    var userId = $(this).find("#userId").val(); 
    var announcementId = $(this).find("#announcementId").val(); 
    var url = '/announcements/acknowledge/userid/' + userId + '/announceid/' + announcementId; 
    // ajax call to the controller to write the timestamp of the user clicking the toast announcement 
    $.ajax({ 
      dataType: "json", 
      url: url, 
      success: function(data) { 
       if(data == '1'){ 
       alert("Successfully acknowledged"); 
       } 
       else { 
        alert("Data error"); 
       } 
      }, 
      error: function() { 
      } 
     }); 
}); 
5

您可以通過第三parmeter這是選項覆蓋

toastr.error('Some error', 'Error', { onHidden: function() { 
     console.log('Error toast hidden.') 
}}); 

或修改全局onHidden

var onHiddenToast = function() { 
     console.log("onHidden"); 
} 
toastr.options.onHidden = onHiddenToast; 

也可以通過引用它

var myToast = toastr.info("Some info"); 
//do what you want with myToast 
+0

感謝擡頭得到根本乾杯!將考慮所有關於未來用途的內容! – phattyD 2014-09-18 00:57:30