2015-09-29 55 views
0

我使用的標籤,它的jQuery插件錯誤從https://github.com/aehlke/tag-it多「createTag」的標籤,它的jQuery插件

var ip_elem = $('#my-tags'); 

ip_elem.tagit({ 
    removeConfirmation: false, 
    caseSensitive: false, 
    allowDuplicates: false, 
    allowSpaces: true, 
    readOnly: false, 
    tagLimit: null, 
    singleField: false, 
    singleFieldDelimiter: ',', 
    singleFieldNode: null, 
    tabIndex: null, 
    placeholderText:"Enter Tags" 
}); 

現在,我想用createTag方法以編程方式添加更多標籤。

var newTags = ["javascript","php","ruby","python"]; 

for(var k=0;k<newTags.length;k++){ 
    ip_elem.tagit("createTag", newTags[k]); 
} 

它顯示輸入中的第一個標記,但第二個標記說:Uncaught Error: cannot call methods on tagit prior to initialization; attempted to call method 'createTag'。它停止並且現在不在輸入框中添加更多標籤。因此,最終只形成第一個標記(在這種情況下,將形成javascript

這裏發生了什麼問題?

+0

因爲每次你被初始化'tagit'到'ip_elem'環路.. –

+0

@GuruprasadRao:這就是他們表現出來的文件中。你能看看嗎? :https://github.com/aehlke/tag-it#createtagtaglabel-additionalclass –

+0

你可以看到他們只顯示了單個標籤,而不是多個。 –

回答

1

看看這個例子中,我在小提琴創建:

在小提琴例子,它會動態創建tagsonload,如果你嘗試用相同的名字輸入tag,它贏得不要讓你添加它。

希望這會幫助你,它有事件顯示你實際發生的事情在頁面上。

var newTags = ["javascript","php","ruby","python"]; 

var addEvent = function(text) { 
    $('#events_container').append(text + '<br>'); 
}; 

$(function(){ 
    var ip_elem = $('#myTags'); 

    ip_elem.tagit({ 
     removeConfirmation: false, 
     caseSensitive: false, 
     allowDuplicates: false, 
     allowSpaces: true, 
     readOnly: false, 
     tagLimit: null, 
     singleField: false, 
     singleFieldDelimiter: ',', 
     singleFieldNode: null, 
     tabIndex: null, 
     placeholderText:"Enter Tags" 
    }); 

    ip_elem.tagit({ 
     availableTags: newTags, 
     beforeTagAdded: function(evt, ui) { 
      if (!ui.duringInitialization) { 
       addEvent('Before Tag Added: ' + ip_elem.tagit('tagLabel', ui.tag)); 
      } 
     }, 
     afterTagAdded: function(evt, ui) { 
      if (!ui.duringInitialization) { 
       addEvent('After Tag Added: ' + ip_elem.tagit('tagLabel', ui.tag)); 
      } 
     }, 
     beforeTagRemoved: function(evt, ui) { 
      addEvent('Before Tag Removed: ' + ip_elem.tagit('tagLabel', ui.tag)); 
     }, 
     afterTagRemoved: function(evt, ui) { 
      addEvent('After Tag Removed: ' + ip_elem.tagit('tagLabel', ui.tag)); 
     }, 
     onTagClicked: function(evt, ui) { 
      addEvent('On Tag Clicked: ' + ip_elem.tagit('tagLabel', ui.tag)); 
     }, 
     onTagExists: function(evt, ui) { 
      addEvent('On Tag Exists: ' + ip_elem.tagit('tagLabel', ui.existingTag)); 
     } 
    }); 

    for(var k=0;k<newTags.length;k++) 
    { 
     ip_elem.tagit("createTag", newTags[k]); 
    } 
}); 

JSFIDDLE EXAMPLE