我使用的引導標籤的節目時,我使用shown
事件檢測標籤的變化,在一個場景我想這甚至表示要取消,所以我用了preventDefault()
功能如下:取消引導標籤
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var target = $(e.target).attr("href") // activated tab
if(target === '#mise-en-page' || target === '#widgets'){
if($('.page-name-input').length > 0){
var nonEmpty = $('.page-name-input').filter(function(){
return this.value != '';
});
if(nonEmpty.length==0){
e.preventDefault();
console.log('Error !!');
}else{
console.log('OK');
}
}else{
console.log('OK');
}
};
});
在這種情況下,preventDefault()
函數不起作用,即使我在控制檯上打印了'Error !!'
消息,我仍然可以在選項卡之間導航。
我該如何解決這個問題?
編輯:
這是一個的jsfiddle其中preventDefault()
不與顯示事件工作。一旦標籤已被證明
http://jsfiddle.net/xFW8t/2426/
您是否試過'show.bs.tab'事件? – ZimSystem
我不確定您是否可以對這些自定義事件使用preventDefault,並且我沒有看到引導程序文檔提及此事。如果這不是直接可能的,那麼我想你可以重寫它來通過一個自定義的點擊處理程序來觸發你的標籤(所以在觸發鏈接上沒有'data-toggle'),然後在這個點擊處理程序中決定你是否想要顯示選項卡還是不顯示。 – CBroe
@ZimSystem是的,我試過了,你可以檢查我附加的jsfiddle。 –