2010-02-19 23 views

Trả lời

1

Không gian tên được đưa ra sau sự kiện này ..

vì vậy nó phải

jQuery("div.jGrowl").trigger("close.jGrowl"); 

cập nhật sau khi bình luận
Cú pháp đề cập trong blog của họ thể là một typo .. (Bạn đã thử nó để xem nó hoạt động?)

Khác t han đó, một yêu cầu hỗ trợ tại trang plugin jquery ngày tháng 2 năm 2009 có thể chứa một số cái nhìn sâu sắc hơn .. có một cái nhìn ..

+0

@Gaby: > [Theo] (http: //www.stanlemon .netindex.jgrowl.html) với điều này nó là như tôi đã nói – Hulk

+0

lạ .. có lẽ nó là một lỗi đánh máy ... bạn đã thử nó chưa? –

+0

có nó không hoạt động .. – Hulk

2

Ba lựa chọn:

$('div.jGrowl').find('div.jGrowl-notification').children().parent().remove(); 

$('div.jGrowl').find('div.jGrowl-notification').trigger('jGrowl.close'); 

$('div.jGrowl').find('.jGrowl-close').trigger('jGrowl.close'); 

Bất kỳ trong số họ đóng tất cả các thông báo. Tôi không chắc chắn làm thế nào để đóng một thông báo cá nhân, mặc dù.

9

này làm việc cho tôi

$("div.jGrowl").jGrowl("close"); 
+0

Cú pháp này dường như không hoạt động nữa. Tất cả nó đã làm cho tôi đã bật một jGrowl với một thông điệp "đóng" – Kristopher

+0

Điều này vẫn làm việc cho tôi cho phiên bản mới nhất – Arda

0

Dưới đây là một giải pháp để đóng thông báo cá nhân:

testGrowl = function() { 
var ao, close; 
close = function(e) { 
    console.log('close'); 
    return $(e).find('.jGrowl-close').trigger('click'); 
}; 
ao = function(e) { 
    return setTimeout(function() { 
    return close(e); 
    }, 1500); 
}; 
return $.jGrowl("Hello world!", { 
    sticky: true, 
    afterOpen: ao 
    }); 
}; 
setTimeout(testGrowl, 100); 
setTimeout(testGrowl, 1000); 

CoffeeScript and dialog here.

0

Đây là một giải pháp cho việc đóng mở thông điệp cá nhân có sử dụng tính năng nhóm jGrowl của:

var nextGroupID = 1; 

var addMessage = function(message) 
{ 
    var groupID = nextGroupID++; 
    $.jGrowl(message, { sticky: true, group: "group-" + groupID }); 
    return groupID; 
}; 

var removeMessage = function(groupID) 
{ 
    $("div.jGrowl-notification.group-" + groupID).trigger("jGrowl.close"); 
} 

// Example usage 
addMessage("The first test message"); 
var testID = addMessage("The second test message"); 

setTimeout(function() {removeMessage(testID);}, 4000); 
1

Phương pháp tốt nhất là

$(".jGrowl-notification:last-child").remove(); 

Khi jGrowl tạo thông báo nó sử dụng để tạo ra hai jGrowl thông báo DIV nơi một ô trống. Vì vậy, khi bao giờ bạn tạo một thông báo cuối cùng là thông báo mới nhất. Vì vậy, bạn cần phải đóng DIV cuối cùng với lớp thông báo jGrowl.

Khi bao giờ bạn muốn mở chỉ lưu ý duy nhất sử dụng mã dưới đây, sẽ loại bỏ các báo cáo trước đây và tạo ra một cái mới

$(".jGrowl-notification:last-child").remove(); 

$.jGrowl("Hello World"); 
1

$(".jGrowl-notification:last-child").jGrowl('close');

hoặc

$(".jGrowl-notification:last-child").trigger('jGrowl.close')

Có cách tốt nhất để đóng thông báo vì tất cả các cuộc gọi lại sẽ được kích hoạt tương ứng.

Xóa chế độ bỏ qua các cuộc gọi lại, điều này ít lý tưởng hơn.Cũng lưu ý rằng để đóng một thông báo cụ thể, bạn sẽ muốn sử dụng bộ chọn ghi chú ở trên.

Gọi phương thức $.fn.jGrowl() được thiết kế để tiếp cận tiện ích con của jQuery.UI và đã trở thành địa điểm khá phổ biến và tôi rất có thể sẽ duy trì điều này trong các bản phát hành trong tương lai.

2

một này làm việc cho tôi, đóng thông báo cuối cùng:

$('div.jGrowl-close').triggerHandler('click'); 

Edit: Cải thiện hiệu quả bằng cách thay thế kích hoạt với triggerHandler. Xem http://api.jquery.com/triggerHandler/

2

Tôi gặp vấn đề tương tự vì tôi đã thêm một nhóm nút vào thông báo gầm gừ. Một đã được sử dụng để chấp nhận thông báo và người kia đã được sử dụng để bỏ qua thông báo. Cách tiếp cận tôi mất là để thêm một callback afterOpen và sau đó thêm một handler click với tham chiếu đến các yếu tố gần gốc:

afterOpen: function(e,m,o){ 
    $(e).find("#acceptInvitation").click(function() { 
     alert("Invite Accepted"); 
    }); 
    $(e).find("#declineInvitation").click(function() { 
     $(e).children("div.jGrowl-close").trigger('click'); 
    }); 
} 
-1
$('#jGrowl').find('.jGrowl-close').trigger('click'); 
+1

Xin vui lòng thêm mô tả để yuor câu trả lời – zohar

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