2011-07-13 15 views
0

希望有人可以提供幫助。jQuery自動收報器 - 如何刪除#代碼標題

我使用jQuery的ticker插件來顯示新聞標題。

我需要能夠從js中刪除標題元素'titleElem'(文本'最新消息'是通過JS添加的,所以對SEO沒有好處),理想情況下文本需要物理上在頁面上。

我已經試過躲在使用

$(function() { $('#ticker-title span').css("display", "none"); }); 
  • 冠軍,但它使整個股票消失。任何人都可以告訴我,我可以從js本身刪除它嗎?我已經看了一眼,不知道從哪裏開始。

    (function($){ 
    $.fn.ticker = function(options) { 
        // Extend our default options with those provided. 
        // Note that the first arg to extend is an empty object - 
        // this is to keep from overriding our "defaults" object. 
        var opts = $.extend({}, $.fn.ticker.defaults, options); 
    
        /* Get the id of the UL to get our news content from */ 
        var newsID = '#' + $(this).attr('id'); 
    
        /* Get the tag type - we will check this later to makde sure it is a UL tag */ 
        var tagType = $(this).get(0).tagName; 
    
        return this.each(function() { 
         /* Internal vars */ 
         var settings = {     
          position: 0, 
          time: 0, 
          distance: 0, 
          newsArr: {}, 
          play: true, 
          paused: false, 
          contentLoaded: false, 
          dom: { 
           contentID: '#ticker-content', 
           titleID: '#ticker-title', 
           titleElem: '#ticker-title SPAN', 
           tickerID : '#ticker', 
           wrapperID: '#ticker-wrapper', 
           revealID: '#ticker-swipe', 
           revealElem: '#ticker-swipe SPAN', 
           controlsID: '#ticker-controls', 
           prevID: '#prev', 
           nextID: '#next', 
           playPauseID: '#play-pause' 
          } 
         }; 
    
         // if we are not using a UL, display an error message and stop any further execution 
         if (tagType != 'UL' && tagType != 'OL' && opts.htmlFeed === true) { 
          debugError('Cannot use <' + tagType.toLowerCase() + '> type of element for this plugin - must of type <ul> or <ol>'); 
          return false; 
         } 
    
         // set the ticker direction 
         opts.direction == 'rtl' ? opts.direction = 'right' : opts.direction = 'left'; 
    
         // lets go... 
         initialisePage(); 
         /* Function to get the size of an Object*/ 
         function countSize(obj) { 
          var size = 0, key; 
          for (key in obj) { 
           if (obj.hasOwnProperty(key)) size++; 
          } 
          return size; 
         }; 
    
         /* Function for handling debug and error messages */ 
         function debugError(obj) { 
          if (opts.debugMode) { 
           if (window.console && window.console.log) { 
            window.console.log(obj); 
           } 
           else { 
            alert(obj);   
           } 
          } 
         } 
    
         /* Function to setup the page */ 
         function initialisePage() { 
          // add our HTML structure for the ticker to the DOM 
          $(settings.dom.wrapperID).append('<div id="' + settings.dom.tickerID.replace('#', '') + '"><div id="' + settings.dom.titleID.replace('#', '') + '"><span><!-- --></span></div><p id="' + settings.dom.contentID.replace('#', '') + '"></p><div id="' + settings.dom.revealID.replace('#', '') + '"><span><!-- --></span></div></div>'); 
          $(settings.dom.wrapperID).removeClass('no-js').addClass('has-js ' + opts.direction); 
          // hide the ticker 
          $(settings.dom.tickerElem + ',' + settings.dom.contentID).hide(); 
          // add the controls to the DOM if required 
          if (opts.controls) { 
           // add related events - set functions to run on given event 
           $(settings.dom.controlsID).live('click mouseover mousedown mouseout mouseup', function (e) { 
            var button = e.target.id; 
            if (e.type == 'click') {  
             switch (button) { 
              case settings.dom.prevID.replace('#', ''): 
               // show previous item 
               settings.paused = true; 
               $(settings.dom.playPauseID).addClass('paused'); 
               manualChangeContent(button); 
               break; 
              case settings.dom.nextID.replace('#', ''): 
               // show next item 
               settings.paused = true; 
               $(settings.dom.playPauseID).addClass('paused'); 
               manualChangeContent(button); 
               break; 
              case settings.dom.playPauseID.replace('#', ''): 
               // play or pause the ticker 
               if (settings.play == true) { 
                settings.paused = true; 
                $(settings.dom.playPauseID).addClass('paused'); 
                pauseTicker(); 
               } 
               else { 
                settings.paused = false; 
                $(settings.dom.playPauseID).removeClass('paused'); 
                restartTicker(); 
               } 
               break; 
             } 
            } 
            else if (e.type == 'mouseover' && $('#' + button).hasClass('controls')) { 
             $('#' + button).addClass('over'); 
            } 
            else if (e.type == 'mousedown' && $('#' + button).hasClass('controls')) { 
             $('#' + button).addClass('down'); 
            } 
            else if (e.type == 'mouseup' && $('#' + button).hasClass('controls')) { 
             $('#' + button).removeClass('down'); 
            } 
            else if (e.type == 'mouseout' && $('#' + button).hasClass('controls')) { 
             $('#' + button).removeClass('over'); 
            } 
           }); 
           // add controls HTML to DOM 
           $(settings.dom.wrapperID).append('<ul id="' + settings.dom.controlsID.replace('#', '') + '"><li id="' + settings.dom.playPauseID.replace('#', '') + '" class="controls"></li><li id="' + settings.dom.prevID.replace('#', '') + '" class="controls"></li><li id="' + settings.dom.nextID.replace('#', '') + '" class="controls"></li></ul>'); 
          } 
          if (opts.displayType != 'fade') { 
            // add mouse over on the content 
            $(settings.dom.contentID).mouseover(function() { 
             if (settings.paused == false) { 
              pauseTicker(); 
             } 
            }).mouseout(function() { 
             if (settings.paused == false) { 
              restartTicker(); 
             } 
            }); 
          } 
          // process the content for this ticker 
          processContent(); 
         } 
    
         /* Start to process the content for this ticker */ 
         function processContent() { 
          // check to see if we need to load content 
          if (settings.contentLoaded == false) { 
           // construct content 
           if (opts.ajaxFeed) { 
            if (opts.feedType == 'xml') { 
             $.ajax({ 
              url: opts.feedUrl, 
              cache: false, 
              dataType: opts.feedType, 
              async: true, 
              success: function(data){ 
               count = 0; 
               // get the 'root' node 
               for (var a = 0; a < data.childNodes.length; a++) { 
                if (data.childNodes[a].nodeName == 'rss') { 
                 xmlContent = data.childNodes[a]; 
                } 
               } 
               // find the channel node 
               for (var i = 0; i < xmlContent.childNodes.length; i++) { 
                if (xmlContent.childNodes[i].nodeName == 'channel') { 
                 xmlChannel = xmlContent.childNodes[i]; 
                }  
               } 
               // for each item create a link and add the article title as the link text 
               for (var x = 0; x < xmlChannel.childNodes.length; x++) { 
                if (xmlChannel.childNodes[x].nodeName == 'item') { 
                 xmlItems = xmlChannel.childNodes[x]; 
                 var title, link = false; 
                 for (var y = 0; y < xmlItems.childNodes.length; y++) { 
                  if (xmlItems.childNodes[y].nodeName == 'title') {              
                   title = xmlItems.childNodes[y].lastChild.nodeValue; 
                  } 
                  else if (xmlItems.childNodes[y].nodeName == 'link') {             
                   link = xmlItems.childNodes[y].lastChild.nodeValue; 
                  } 
                  if ((title !== false && title != '') && link !== false) { 
                   settings.newsArr['item-' + count] = { type: opts.titleText, content: '<a href="' + link + '">' + title + '</a>' };             count++;             title = false;             link = false; 
                  } 
                 } 
                }  
               }   
               // quick check here to see if we actually have any content - log error if not 
               if (countSize(settings.newsArr < 1)) { 
                debugError('Couldn\'t find any content from the XML feed for the ticker to use!'); 
                return false; 
               } 
               setupContentAndTriggerDisplay(); 
               settings.contentLoaded = true; 
              } 
             });       
            } 
            else { 
             debugError('Code Me!'); 
            }      
           } 
           else if (opts.htmlFeed) { 
            if($(newsID + ' LI').length > 0) { 
             $(newsID + ' LI').each(function (i) { 
              // maybe this could be one whole object and not an array of objects? 
              settings.newsArr['item-' + i] = { type: opts.titleText, content: $(this).html()}; 
             });  
             setupContentAndTriggerDisplay(); 
            } 
            else { 
             debugError('Couldn\'t find HTML any content for the ticker to use!'); 
             return false; 
            } 
           } 
           else { 
            debugError('The ticker is set to not use any types of content! Check the settings for the ticker.'); 
            return false; 
           }     
          }   
         } 
    
         function setupContentAndTriggerDisplay() { 
    
          settings.contentLoaded = true; 
    
          // update the ticker content with the correct item 
          // insert news content into DOM 
          $(settings.dom.titleElem).html(settings.newsArr['item-' + settings.position].type); 
          $(settings.dom.contentID).html(settings.newsArr['item-' + settings.position].content); 
    
          // set the next content item to be used - loop round if we are at the end of the content 
          if (settings.position == (countSize(settings.newsArr) -1)) { 
           settings.position = 0; 
          } 
          else {  
           settings.position++; 
          }   
    
          // get the values of content and set the time of the reveal (so all reveals have the same speed regardless of content size) 
          distance = $(settings.dom.contentID).width(); 
          time = distance/opts.speed; 
    
          // start the ticker animation      
          revealContent();   
         } 
    
         // slide back cover or fade in content 
         function revealContent() { 
          if(settings.play) { 
           // get the width of the title element to offset the content and reveal 
           var offset = $(settings.dom.titleElem).width() + 20; 
           $(settings.dom.revealID).css(opts.direction, offset + 'px'); 
           // show the reveal element and start the animation 
           if (opts.displayType == 'fade') { 
            // fade in effect ticker 
            $(settings.dom.revealID).hide(0, function() { 
             $(settings.dom.contentID).css(opts.direction, offset + 'px').fadeIn(opts.fadeInSpeed, postReveal); 
            });      
           } 
           else if (opts.displayType == 'scroll') { 
            // to code 
           } 
           else { 
            // default bbc scroll effect 
            $(settings.dom.revealElem).show(0, function() { 
             $(settings.dom.contentID).css(opts.direction, offset + 'px').show(); 
             // set our animation direction 
             animationAction = opts.direction == 'right' ? { marginRight: distance + 'px'} : { marginLeft: distance + 'px' }; 
             $(settings.dom.revealID).css('margin-' + opts.direction, '0px').delay(20).animate(animationAction, time, 'linear', postReveal); 
            });  
           } 
          } 
          else { 
           return false;     
          } 
         }; 
    
         // here we hide the current content and reset the ticker elements to a default state ready for the next ticker item 
         function postReveal() {    
          if(settings.play) {  
           // we have to separately fade the content out here to get around an IE bug - needs further investigation 
           $(settings.dom.contentID).delay(opts.pauseOnItems).fadeOut(opts.fadeOutSpeed); 
           // deal with the rest of the content, prepare the DOM and trigger the next ticker 
           if (opts.displayType == 'fade') { 
            $(settings.dom.contentID).fadeOut(opts.fadeOutSpeed, function() { 
             $(settings.dom.wrapperID) 
              .find(settings.dom.revealElem + ',' + settings.dom.contentID) 
               .hide() 
              .end().find(settings.dom.tickerID + ',' + settings.dom.revealID) 
               .show() 
              .end().find(settings.dom.tickerID + ',' + settings.dom.revealID) 
               .removeAttr('style');        
             setupContentAndTriggerDisplay();       
            }); 
           } 
           else { 
            $(settings.dom.revealID).hide(0, function() { 
             $(settings.dom.contentID).fadeOut(opts.fadeOutSpeed, function() { 
              $(settings.dom.wrapperID) 
               .find(settings.dom.revealElem + ',' + settings.dom.contentID) 
                .hide() 
               .end().find(settings.dom.tickerID + ',' + settings.dom.revealID) 
                .show() 
               .end().find(settings.dom.tickerID + ',' + settings.dom.revealID) 
                .removeAttr('style');        
              setupContentAndTriggerDisplay();       
             }); 
            }); 
           } 
          } 
          else { 
           $(settings.dom.revealElem).hide(); 
          } 
         } 
    
         // pause ticker 
         function pauseTicker() {     
          settings.play = false; 
          // stop animation and show content - must pass "true, true" to the stop function, or we can get some funky behaviour 
          $(settings.dom.tickerID + ',' + settings.dom.revealID + ',' + settings.dom.titleID + ',' + settings.dom.titleElem + ',' + settings.dom.revealElem + ',' + settings.dom.contentID).stop(true, true); 
          $(settings.dom.revealID + ',' + settings.dom.revealElem).hide(); 
          $(settings.dom.wrapperID) 
           .find(settings.dom.titleID + ',' + settings.dom.titleElem).show() 
            .end().find(settings.dom.contentID).show(); 
         } 
    
         // play ticker 
         function restartTicker() {    
          settings.play = true; 
          settings.paused = false; 
          // start the ticker again 
          postReveal(); 
         } 
    
         // change the content on user input 
         function manualChangeContent(direction) { 
          pauseTicker(); 
          switch (direction) { 
           case 'prev': 
            if (settings.position == 0) { 
             settings.position = countSize(settings.newsArr) -2; 
            } 
            else if (settings.position == 1) { 
             settings.position = countSize(settings.newsArr) -1; 
            } 
            else { 
             settings.position = settings.position - 2; 
            } 
            $(settings.dom.titleElem).html(settings.newsArr['item-' + settings.position].type); 
            $(settings.dom.contentID).html(settings.newsArr['item-' + settings.position].content);      
            break; 
           case 'next': 
            $(settings.dom.titleElem).html(settings.newsArr['item-' + settings.position].type); 
            $(settings.dom.contentID).html(settings.newsArr['item-' + settings.position].content); 
            break; 
          } 
          // set the next content item to be used - loop round if we are at the end of the content 
          if (settings.position == (countSize(settings.newsArr) -1)) { 
           settings.position = 0; 
          } 
          else {  
           settings.position++; 
          } 
         } 
        }); 
    }; 
    
    // plugin defaults - added as a property on our plugin function 
    $.fn.ticker.defaults = { 
        speed: 0.15,    
        ajaxFeed: false, 
        feedUrl: '', 
        feedType: 'xml', 
        displayType: 'reveal', 
        htmlFeed: true, 
        debugMode: true, 
        controls: true, 
        titleText: 'LATEST NEWS', 
        direction: 'ltr', 
        pauseOnItems: 3000, 
        fadeInSpeed: 600, 
        fadeOutSpeed: 300 
    }; 
    
    })(jQuery); 
    

回答

1

你必須將其設置爲空字符串...看看

$(function() { 
    $('#js-news').ticker(
    speed: 0.10,   // The speed of the reveal 
    ajaxFeed: false,  // Populate jQuery News Ticker via a feed 
    feedUrl: false,  // The URL of the feed 
         // MUST BE ON THE SAME DOMAIN AS THE TICKER 
    feedType: 'xml',  // Currently only XML 
    htmlFeed: true,  // Populate jQuery News Ticker via HTML 
    debugMode: true,  // Show some helpful errors in the console or as alerts 
         // SHOULD BE SET TO FALSE FOR PRODUCTION SITES! 
    controls: true,  // Whether or not to show the jQuery News Ticker controls 
    titleText: 'Latest', // To remove the title set this to an empty String 
    displayType: 'reveal', // Animation type - current options are 'reveal' or 'fade' 
    direction: 'ltr'  // Ticker direction - current options are 'ltr' or 'rtl' 
    pauseOnItems: 2000, // The pause on a news item before being replaced 
    fadeInSpeed: 600,  // Speed of fade in animation 
    fadeOutSpeed: 300  // Speed of fade out animation 
); 

});

+0

謝謝 - 不過我再次嘗試過,但似乎打破了整個行情。最後我再次下載了所有的JS文件。 –