2013-06-26 21 views
0

我試圖實現一個獨立的跟蹤腳本,並且在其他站點上按照預期工作(或至少從我可以從觀看站點和分析中看到的情況)。兩個js腳本之間的衝突,我不明白爲什麼?

的代碼看起來像這樣

{ 
    jQuery(document).ready(function($) { 
    var filetypes = /\.(zip|exe|dmg|pdf|doc.*|xls.*|ppt.*|mp3|txt|rar|wma|mov|avi|wmv|flv|wav)$/i; 
    var baseHref = ''; 
    if (jQuery('base').attr('href') != undefined) baseHref = jQuery('base').attr('href'); 

    jQuery('a').on('click', function(event) { 
     var el = jQuery(this); 
     var track = true; 
     var href = (typeof(el.attr('href')) != 'undefined') ? el.attr('href') :""; 
     var isThisDomain = href.match(document.domain.split('.').reverse()[1] + '.' + document.domain.split('.').reverse()[0]); 
     if (!href.match(/^javascript:/i)) { 
     var elEv = []; elEv.value=0, elEv.non_i=false; 
     if (href.match(/^mailto\:/i)) { 
      elEv.category = "Email"; 
      elEv.action = "Klick"; 
      elEv.label = href.replace(/^mailto\:/i, ''); 
      elEv.loc = href; 
     } 
     else if (href.match(filetypes)) { 
      var extension = (/[.]/.exec(href)) ? /[^.]+$/.exec(href) : undefined; 
      elEv.category = "Nerladdning"; 
      elEv.action = "Fil-" + extension[0]; 
      elEv.label = href.replace(/ /g,"-"); 
      elEv.loc = baseHref + href; 
     } 
     else if (href.match(/^https?\:/i) && !isThisDomain) { 
      elEv.category = "Ex.Länk"; 
      elEv.action = "Klick"; 
      elEv.label = href.replace(/^https?\:\/\//i, ''); 
      elEv.non_i = true; 
      elEv.loc = href; 
     } 

     else track = false; 

     if (track) { 
      _gaq.push(['_trackEvent', elEv.category.toLowerCase(), elEv.action.toLowerCase(), elEv.label.toLowerCase(), elEv.value, elEv.non_i]); 
      if (el.attr('target') == undefined || el.attr('target').toLowerCase() != '_blank') { 
      setTimeout(function() { location.href = elEv.loc; }, 400); 
      return false; 
     } 
    } 
     } 
    }); 
    }); 
} 

這是之前

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/jquery-ui.min.js"></script> 

現在裝上了問題jQuery的版本,如果我把「我」的劇本的那些上面,我將發佈在那之下我的腳本工作。但是,如果我這樣做,因爲我想,把我的劇本最後在頁面上它不工作,或任何aslong,因爲它是低於另一個將結束我的工作不

<script type="text/javascript"> jQuery(document).ready(function ($) { runJS(); }); </script> 

的runJS導致另一個.js文件是functions.js,我能理解的是runJS是這樣的(我用下面的網站替換了網站的名稱)。

function runJS() { 

    if((fontLoaded('DistrictThin') && fontLoaded('NationalLight')) || timer > 30) { 
     site.init(); 

     $(".search_result").find('img').load(function() { 
      $(".search_result.primary").equalHeights(); 
      //$(".search_result:not(.primary)").equalHeights(); 
     });   

     if ($('#site_search_form').length > 0) { 
      populateForm(); 
     } 
    } 
    else { 
     setTimeout('runJS()', 100); 
     timer += 1; 
    } 
} 

任何幫助將不勝感激!

+0

你使用兩種類型的jQuery的版本 –

回答

0

,如果你使用不同的版本在單個頁面的jQuery則必須將此

var jq = jQuery.noConflict(); // jq having the value of $. 
           // In your entire script use jq instead of $. 
+0

這是首部使用 '<腳本類型=「文/ JavaScript的」 src =「http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js」> \t ' 這是在頁腳 '' 這就是你的意思? – user2522914

相關問題