2014-02-23 43 views
0

我想我可能會使用錯誤的js庫。不知道..我在網上學習一個教程,我看到這個人編碼,並看着它的工作。我審查了兩次,並完成了,仍然沒有工作。簡單的jQuery切換(不工作)

這裏是我的html:

<html lang="en"> 
<head> 
<meta charset="utf-8" /> 
<title>Title</title> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
    <script src="hideshow.js"></script> 

</head> 
<body> 

<a href="#" id="hideshow">Hide </a> 

<div id="message" style="width:300px; border:1px solid black; padding:10px"> 

This is the wording inside of the text for testing purposes. 

</div> 
</body> 

這裏是我的JS從hideshow.js:

$('#hideshow').toggle(function() { 

$('#hideshow').text('Show'); 

}, function() { 

$('#hideshow').text('Hide'); 
}); 

我很感激,感謝誰可以算出來。 :(

+1

撥動事件從jQuery的1.9取出後。看到http://api.jquery.com/toggle-event/ – j08691

回答

2

看起來好像你正在嘗試使用toggle event,它在jQuery 1.8中被棄用,並在jQuery 1.9上被刪除,新的toggle函數有許多不同的重載,但沒有一個表現得像舊的那樣。Take a look at it並選擇。是最適合自己。例如,你可以做這樣的事情之一:

$('#hideshow').click(function() { 
    $('#message').toggle(); 
    if($('#message').is(':visible')) { 
     $('#hideshow').text('Hide');   
    } else { 
     $('#hideshow').text('Show'); 
    } 
}); 

而且這裏有一個的jsfiddle你一起玩http://jsfiddle.net/74GzV/1/

+0

我明白了,但是你怎麼能使用這個新的切換來改變文本來表示「顯示」? –

+0

呃...你不能。我更新了我的答案和小提示,告訴你如何做到這一點,但改變文本的邏輯與切換功能 – rla4

+0

無關,就像!!!!!!!!!! – HybrisFreelance

0

由於j08691指出,toggle被刪除,但即使它不是<script src="hideshow.js"></script>正在頁面h之前運行作爲加載,因此#hideshow將變成未定義。嘗試把整個事情的$(document).ready身邊缺少工作toggle

0
var toggler = $('#hideshow'); 
toggler.text('Hide'); 

toggler.click(function(e) { 
    e.preventDefault(); 
    $('#message').slideToggle('slow', function() { 
     var togglerLabel = $(this).is(':visible') ? 'Hide' : 'Show'; 
     toggler.text(togglerLabel); 
    }); 
}); 

http://jsfiddle.net/4TqQT/46/

+0

而在這一個中,它改變了文本,但在消息被隱藏之後。我覺得有一個更簡單的方法來切換文本和隱藏信息.. –