2017-06-02 57 views
0

我正在使用名爲jQueryFontIconPicker的jquery插件。我正在修改這個圖標選擇器來選擇用戶可以上傳的圖像圖標。你可以在Javascript中更改外部庫的訂單事件嗎?

當選擇圖標時,我使用附加到創建jqfonticonpicker的函數的.on('change')...問題是我試圖操縱dom,但不能強制我的更改在生效後生效插件更改生效。

有一種優雅的方式來設置排序?

var iconcats = { // these are just arrays listing the icons to use. they all work fine. 
      'Library Icons': libicons, 
      'My Icons': usericons 
     }; 

     $('.iconpicker-input').fontIconPicker({ 
      source: iconcats, 
      emptyIcon: false, 
      hasSearch: true, 
      theme: 'fip-darkgrey' 
     }).on('change', function(){ 
    // Do DOM changes here, replace icons with images. 

      var target = event.target; 
      var iconname; 

      if($(target).hasClass('custom-icon-image')) 
      { 
       iconname = $(target).attr('title'); 
       alert('check sequence'); 
       $(target).closest('.icons-selector .selected-icon i').html('<img class="selected-icon-image" src="/site_repo/' + siteID +'/icons/' + iconname + '.png" title="' + iconname + '" />'); 
       $(target).closest('.icons-selector .selector').html('<p>test</p>'); 
      } 
     }); 

}); 

預先感謝您

+0

請發佈這個代碼的工作示例,它不是很清楚什麼問題是基於一個片段和一個模糊的解釋。 –

+0

你很可能不會改變插件的功能......也許如果你告訴我們實際的問題是什麼,我們可以給你一個關於如何解決它的答案。 – epascarello

+1

你需要創建一個承諾,使用你的插件,然後使用.then函數異步執行你的代碼。 –

回答

0

我發現有超過事件的執行順序沒有控制,這似乎是瀏覽器的控制,所以我最終只是修改插件代碼自己。不理想,但解決了這個問題。

相關問題