2013-09-06 45 views
6

Tôi nhận được thông báo này về cách phản ứng khi nhấp vào toast, vì vậy tôi quyết định đăng nó ở đây cho mọi người.Mở rộng việc tạo đơn lẻ với chức năng tùy chỉnh tùy chỉnh onclick

Khi người dùng nhấp vào một toast Tôi không luôn luôn muốn được thông báo biến mất, nhưng tùy thuộc vào loại thông điệp mà tôi muốn:

  • Disappear.
  • Chuyển hướng người dùng đến một trang khác (x es/meeting/210) hiển thị hộp thoại jquery (ví dụ: hiển thị sms đã nhận).

Sử dụng sự kiện nhấp cơ bản Tôi không thể phát hiện toast Tôi đã nhấp vào. Cách giải quyết duy nhất tôi tìm thấy là thêm liên kết vào bánh mì nướng và thực hiện chuyển hướng khi người dùng nhấp vào nó. Vì vậy, những gì tôi yêu cầu là một cách để có được bánh mì nướng hiện tại người dùng nhấp chuột, bằng cách sử dụng sự kiện nhấp cơ bản (nhưng điều này có thể yêu cầu một số dữ liệu ẩn công việc trong bánh mì nướng để phục hồi nó khi được nhấp để hiểu làm) hoặc bằng cách thêm vào hàm tạo bánh mì nướng gọi lại tùy chọn cho hàm khi được nhấp, một cái gì đó như thế này:

toastr.error(
'body text', 
'header text', 
click: function() { 
console.log('you clicked on the error toaster') 
} 
); 

Cảm ơn thư viện rất tốt này.

Trả lời

6

Điều này đã được tạo. Bạn có thể làm điều này theo 2 cách: bạn có thể lấy đối tượng jQuery có chứa phần tử indiviudal toastr hoặc bạn có thể thiết lập sự kiện onclick cho bánh mì nướng cá nhân. Mã của bạn đang chuyển trong một hàm cho parm thứ 3. Parm thứ 3 nên là tùy chọn ghi đè. Vì vậy, nó sẽ giống như thế này:

toastr.error('body text', 'header text', 
    {onclick: function() {console.log('you clicked on the error toaster')}} 
); 
toastr.info('body text 1', 'header text', 
    {onclick: function() {console.log('you clicked on the info toaster n.1')}} 
); 
+0

Thật không may, điều này không ngăn không cho thông điệp bị biến mất ... Trong phương thức toastr.js sau khi onClick được gọi, phương thức hideToast() đang theo sau. Ý tưởng của tôi bây giờ là trả lại kết quả boolean từ phương thức onClick và nếu nó là sai - thì để giữ cho thông điệp được mở ra. Tuy nhiên, có lẽ bạn có thể đề xuất bất kỳ cách tiếp cận tốt hơn? :)) – Anelook

+0

Tôi nghĩ điều này cũng nên có trong tài liệu. Tôi biết nó là chữ ký nhưng một ví dụ trên trang github sẽ tốt đẹp - có lẽ tôi nên chỉnh sửa và làm một PR :) –

Các vấn đề liên quan