我正在使用Toastr 2.1JavaScript库来显示瞬态用户输入验证错误消息.我将preventDuplicates选项设置为true.它无法正常工作 - 当用户快速连续点击验证按钮时,我仍然会看到重复的消息(点击速度超过'超时').
这是我的toastr默认值:
function getDefaults() {
return {
tapToDismiss: true,
toastClass: 'toast',
containerId: 'toast-container',
debug: false,
showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery
showDuration: 300,
showEasing: 'swing', //swing and linear are built into jQuery
onShown: undefined,
hideMethod: 'fadeOut',
hideDuration: 1000,
hideEasing: 'swing',
onHidden: undefined,
extendedTimeOut: 1000,
iconClasses: {
error: 'toast-error',
info: 'toast-info',
success: 'toast-success',
warning: 'toast-warning'
},
iconClass: 'toast-info',
positionClass: 'toast-top-right',
timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky
titleClass: 'toast-title',
messageClass: 'toast-message',
target: 'body',
closeHtml: '<button>×</button>',
newestOnTop: true,
preventDuplicates: true,
progressBar: false
};
}
Run Code Online (Sandbox Code Playgroud)
我是否需要进行任何其他更改以防止重复的错误消息?
小智 7
这可能有所帮助
toastr.options = {
"preventDuplicates": true,
"preventOpenDuplicates": true
};
toastr.error("Your Message","Your Title",{timeOut: 5000});
Run Code Online (Sandbox Code Playgroud)
小智 1
我和你有同样的要求。下面是我的实现。看看是否可以帮助你。
function hasSameErrorToastr(message){
var hasSameErrorToastr = false;
var $toastContainer = $('#toast-container');
if ($toastContainer.length > 0) {
var $errorToastr = $toastContainer.find('.toast-error');
if ($errorToastr.length > 0) {
var currentText = $errorToastr.find('.toast-message').text();
var areEqual = message.toUpperCase() === currentText.toUpperCase();
if (areEqual) {
hasSameErrorToastr = true;
}
}
}
return hasSameErrorToastr;
}
//Usage
var message = 'Error deleting user';
if (hasSameErrorToastr(message)) {
toastr.error(message, title, errorToastrOptions);
}Run Code Online (Sandbox Code Playgroud)
该代码用于检查是否存在显示相同消息的错误 toastr。如果没有显示相同错误的现有实例,我只会触发 toastr.error 。希望这可以帮助。代码可以进一步重构,但我会这样保留它,以便其他人更容易理解。
| 归档时间: |
|
| 查看次数: |
11021 次 |
| 最近记录: |