]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Refs #3098. Changed elgg.getUrlFragment to elgg.getSelectorFromUrlFragment to allow...
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Fri, 1 Apr 2011 21:49:18 +0000 (21:49 +0000)
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Fri, 1 Apr 2011 21:49:18 +0000 (21:49 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8897 36083f99-b078-4883-b0ff-0f9b5a30f544

js/lib/elgglib.js
js/lib/ui.js

index f6d5f51cecc6c89ff1766a98d39f06288e641e01..5ba80fc067ef7db732c240c20155dcb6a76761e5 100644 (file)
@@ -353,15 +353,30 @@ elgg.forward = function(url) {
 };
 
 /**
- * Returns the fragment part of the URL, including the #. Returns '' if no fragment.
+ * Returns a jQuery selector from a URL's fragement.  Defaults to expecting an ID.
  *
- * @param {String} url The URL.
+ * Examples:
+ *  http://elgg.org/download.php returns ''
+ *     http://elgg.org/download.php#id returns #id
+ *     http://elgg.org/download.php#.class-name return .class-name
+ *     http://elgg.org/download.php#a.class-name return a.class-name
+ *
+ * @param {String} url The URL
+ * @return {String} The selector
  */
-elgg.getUrlFragment = function(url) {
+elgg.getSelectorFromUrlFragment = function(url) {
        var fragment = url.split('#')[1];
-       
+
        if (fragment) {
-               return '#' + fragment;
+               // this is a .class or a tag.class
+               if (fragment.indexOf('.') > -1) {
+                       return fragment;
+               }
+
+               // this is an id
+               else {
+                       return '#' + fragment;
+               }
        }
        return '';
 }
\ No newline at end of file
index 3a69e4bfcbb563772b8e5b1d7e6fc96b959d5384..0e6634020613185f56663590597c1292118c7c90 100644 (file)
@@ -63,7 +63,7 @@ elgg.ui.popsUp = function(event) {
        event.preventDefault();
        event.stopPropagation();
 
-       var target = elgg.getUrlFragment($(this).toggleClass('elgg-state-active').attr('href'));
+       var target = elgg.getSelectorFromUrlFragment($(this).toggleClass('elgg-state-active').attr('href'));
        var $target = $(target);
 
        // emit a hook to allow plugins to position and control popups
@@ -113,7 +113,7 @@ elgg.ui.popupClose = function(event) {
 
        // if the click event target isn't in a popup target, fade all of them out.
        $popups.each(function(i, e) {
-               var target = elgg.getUrlFragment($(e).attr('href')) + ':visible';
+               var target = elgg.getSelectorFromUrlFragment($(e).attr('href')) + ':visible';
                var $target = $(target);
 
                if (!$target.is(':visible')) {
@@ -130,7 +130,7 @@ elgg.ui.popupClose = function(event) {
        if (!inTarget) {
                $popups.each(function(i, e) {
                        var $e = $(e);
-                       var $target = $(elgg.getUrlFragment($e.attr('href')) + ':visible');
+                       var $target = $(elgg.getSelectorFromUrlFragment($e.attr('href')) + ':visible');
                        if ($target.length > 0) {
                                $target.fadeOut();
                                $e.removeClass('elgg-state-active');