2012-11-12 31 views
0

我有一個腳本來改變電話號碼,但是這個腳本只能用於jquery 1.6.4 - 一旦我更新到1.7.2,它就停止工作。我錯過了什麼?更新我的jQuery打破了我的顯示/隱藏

<script type="text/javascript">// <![CDATA[ 

$('a#reno-trigger').click(function(){ 
$('#toggle-lv').show(); 
$('#toggle-reno').hide(); 
}); 

$('a#lv-trigger').click(function(){ 
$('#toggle-reno').show(); 
$('#toggle-lv').hide(); 
}); 



// ]]></script> 

HTML:

<div id="toggle-reno"><div class="toggle-switch" > 
<span class="active">Las Vegas</span> | <a id="reno-trigger" href="#">Reno</a></div> 
<div class="toggle-phone">702.555.5555</div> 
</div> 

<div id="toggle-lv" style="display: none"><div class="toggle-switch" > 
<a id="lv-trigger" href="#">Las Vegas</a> | <span class="active">Reno</span></div> 
<div class="toggle-phone">555.555.5555</div> 
</div> 

我要刪除這條線和腳本將不再工作:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 

我拿出CDATA爲好。

我的wordpress正在加載本地版本的1.7.2。

<script type='text/javascript' src='http://xxx.com/wp-includes/js/jquery/jquery.js?ver=1.7.2'></script> 

我說:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 

並再次將其工作原理,但我同時加載兩個jQueries這似乎很奇怪。

我想這是不是jQuery的的更新畢竟...

的的document.ready現在已經實現:

<script type="text/javascript"> 
$(document).ready(
$('a#reno-trigger').click(function(){ 
$('#toggle-lv').show(); 
$('#toggle-reno').hide(); 
}); 

$('a#lv-trigger').click(function(){ 
$('#toggle-reno').show(); 
$('#toggle-lv').hide(); 
}); 

); 
</script> 

該腳本沒有工作期間,我必須擰緊up document.ready部分...我現在把它放回去了。

+1

JavaScript的錯誤?任何HTML,我們可以看看? – Blazemonger

+4

不知道爲什麼它取決於版本,但你應該把這個代碼放在$(document).ready()函數中。 – Barmar

+0

你的代碼中沒有任何東西可以通過更新到1.7.2來破解 –

回答

0

試試這個:

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

<script type="text/javascript"> 
$(function(){ 

    $('a#reno-trigger').click(function(){ 
     $('#toggle-lv').show(); 
     $('#toggle-reno').hide(); 
    }); 

    $('a#lv-trigger').click(function(){ 
     $('#toggle-reno').show(); 
     $('#toggle-lv').hide(); 
    }); 

}); 
</script> 
+0

這工作,但只是因爲我不得不包括第二個jQuery(它也適用於原始函數) – DesignGuy702

+0

請確保你加載jQuery'

0

這工作,我不知道爲什麼。但它的作品:)

<script type="text/javascript">// <![CDATA[ 

jQuery(document).ready(function($){ 

    $('a#reno-trigger').click(function(){ 
$('#toggle-lv').show(); 
$('#toggle-reno').hide(); 
}); 

$('a#lv-trigger').click(function(){ 
$('#toggle-reno').show(); 
$('#toggle-lv').hide(); 
}); 

}); 



// ]]></script> 
+0

這與我的回答不一樣嗎? – Coby

+0

它工作的原因是因爲它包裝在'jQuery(document ).ready(function($){...});'(也可以寫成'$(function(){...});')等待文檔完全加載(DOM準備就緒)在執行腳本之前。 – Coby

+0

我粘貼了你的解決方案,但它不起作用,但是因爲你是唯一一個發佈實際答案的人,所以我可以接受你的答案,因爲它可以讓我走上正確的道路......好吧,我將你的建議與Barmar的建議結合起來並添加我自己的觸摸! :P – DesignGuy702