JS无法切换Jquery元素

时间:2014-04-30 15:10:31

标签: javascript webpage

$(document).ready(function() {
var page = 1;
    $(".btnReadMore").click(function(){
        if(page==1){
            $('#aboutUsText').text('textone');
            var page=0;
        }else{
            $('#aboutUsText').text('text two');
        }
    }); 
});

我对javascript很新,我试图在按下按钮时切换元素文本,我做错了什么?谢谢:3

2 个答案:

答案 0 :(得分:0)

我不建议使用“var page = 1;”因为它是一个全局变量,应尽可能避免全局变量,因为它们对性能不利。

$("#btnReadMore").click(function(){
    var textSpan = $('#aboutUsText');
    if (textSpan.attr("ShowState")=="2"){
        textSpan.text('textone');
        textSpan.attr("ShowState", "1");
    }else{
        textSpan.text('text two');
        textSpan.attr("ShowState", "2");
    }
});

在上面的例子中,我声明了我自己的名为ShowState的自定义属性,并将其保存在标签本身上。此外,我切换按钮使用ID而不是类。类访问速度很慢。 ID是即时的。

结帐我的小提琴: http://jsfiddle.net/eLVTk/

答案 1 :(得分:0)

由于您要在函数中重新声明page,整个.click()事件处理程序将始终使用var page = 0。请参阅variable scopingvariable hoisting

正如Dhaval在评论中所述,只需删除声明就可以解决这个问题:

 page = 0; // Instead of var page = 0