Fixed display of pre-rendered dropdowns
authorAlexander Ebert <ebert@woltlab.com>
Sun, 26 Oct 2014 19:56:08 +0000 (20:56 +0100)
committerAlexander Ebert <ebert@woltlab.com>
Sun, 26 Oct 2014 19:56:08 +0000 (20:56 +0100)
wcfsetup/install/files/js/3rdParty/redactor/plugins/wmonkeypatch.js

index ad7cb5f9d0e29026d98fe00234a6aab58545e810..265302327e5e33804065e31ce0886a4644264fbb 100644 (file)
@@ -160,10 +160,27 @@ RedactorPlugins.wmonkeypatch = function() {
                        // dropdown.show
                        var $mpShow = this.dropdown.show;
                        this.dropdown.show = $.proxy(function(e, key) {
+                               var $dropdown = this.button.get(key).data('dropdown');
+                               $fixDropdown($dropdown);
+                               
                                $mpShow.call(this, e, key);
                                
-                               this.button.get(key).data('dropdown').off('mouseover mouseout');
+                               $dropdown.off('mouseover mouseout');
                        }, this);
+                       
+                       // fix existing dropdowns
+                       var $fixDropdown = function(dropdown) {
+                               if (dropdown.hasClass('dropdownMenu')) {
+                                       return;
+                               }
+                               
+                               dropdown.addClass('dropdownMenu');
+                               var $items = dropdown.children('a').detach();
+                               for (var $i = 0; $i < $items.length; $i++) {
+                                       var $item = $('<li />').appendTo(dropdown);
+                                       $item.append($items[$i]);
+                               }
+                       };
                },
                
                /**