2014-02-23 40 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

而在这一个中,它改变了文本,但在消息被隐藏之后。我觉得有一个更简单的方法来切换文本和隐藏信息.. –