我假设我已经走上正轨,因为问题已经解决了(尽管会产生不同的问题)所以问题是我应该使用什么版本的jquery?
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
var showText = 'Leer Más'; //Read more
var hideText = 'Ocultar'; //Hide
var is_visible = false;
$('.toggle').prev().append(' (<a href="#" class="toggleLink">' + showText + '</a>)');
$('.toggle').hide();
$('a.toggleLink').click(function () {
$(this).toggleClass('visible');
$(this).html(($(this).hasClass('.visible')) ? hideText : showText);
$(this).parent().next('.toggle').toggle('slow');
return false;
});
});
</script>
...
<a href="#" class="toggleLink"></a>
<span class="toggle"><br>
<span class= "ticktext"><span>
...
答案 0 :(得分:2)
您的错误在这里
$(this).html(($(this).hasClass('.visible')) // <-- extra .
你想要的是
$(this).html(($(this).hasClass('visible'))
除非你有一类
class='.visible'
你没有,因为你正在切换这个$(this).toggleClass('visible');
导致
class='visible'
虽然我认为它没有意义,因为它适用于其他浏览器?
它确实解释了为什么它继续读取更多...因为它总是计算为false - 因此showText将始终显示
$(this).hasClass('.visible')) ? hideText : showText
答案 1 :(得分:0)
因为您使用的是jquery 1.8,所以必须使用on
委托事件来动态添加元素
$(document).on('click','a.toggleLink',function() {
$(this).toggleClass('visible');
$(this).html( ($(this).hasClass('.visible')) ? hideText : showText);
$(this).parent().next('.toggle').toggle('slow');
return false;
});