开发者

jQuery, call class before addClass and removeClass

The code works well, but I have no control of my layout. It toggles between two button states correctly on开发者_运维技巧ce the link is pressed. How do I call the 'plus class' before the link is pressed? Please help. Also, I've tried divs and spans to organize it, but it needs some tweeking

Thanks,

jQuery, call class before addClass and removeClass

<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
</head>
<style type="text/css">
    #h6{font-size: 12px; padding-right: 0px;}
    .plus{left:0px;height:33px;width:32px; background:url('sprite.gif') 0 0px;}
    .minus{left:0px;height:33px;width:32px; background:url('sprite.gif') 0 -34px;}
</style>
<h6 id="deToggle"><a href="#" class="styles2" id="h6">Larger</a></h6>
<script language="javascript">
    var click = 0%2;
    var fontSizes = [14, 16]
    $('#deToggle').toggle(
        function(){
            var sprot = $('#deToggle');//
            var tog = $('#deToggle');
            tog.html('<a href="#">Larger</a>');
            $('#OurText').css('fontSize', fontSizes[1] + 'px');
            $(this).val("-");
            tog.addClass('plus');
            tog.removeClass('minus');
        },
        function(){
            var tog = $('#deToggle');
            tog.html('<a href="#">Smaller</a>');
            $('#OurText').css('fontSize', fontSizes[0]+ 'px');
            $(this).val("+");
            tog.removeClass('plus');
            tog.addClass('minus');
        });
</script>
<p id="OurText">My Text!!!</p>
</html> 

sprit.gif rollover image

jQuery, call class before addClass and removeClass


I reply 2 days before something like this

see here

ask for help

DEMO


Do you mean you want to apply the class on the initial page load?

Call the code to add the plus class on the initial page load. I've also refactored your code into functions and put it all in jQuery's document.ready function

$(document).ready(function(){ 
     Plus();

     $('#deToggle').toggle(function(){
        Plus();
     }, function(){
        Minus();
     });

});

function Plus(){
    var sprot = $('#deToggle');//
    var tog = $('#deToggle');
    tog.html('<a href="#">Larger</a>');
    $('#OurText').css('fontSize', fontSizes[1] + 'px');
    $(this).val("-");
    tog.addClass('plus');
    tog.removeClass('minus');
}

function Minus(){
    var tog = $('#deToggle');
    tog.html('<a href="#">Smaller</a>');
    $('#OurText').css('fontSize', fontSizes[0]+ 'px');
    $(this).val("+");
    tog.removeClass('plus');
    tog.addClass('minus');
}


You need to add doctype for css to work. Add this before the head tag

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


This is because you didn't set the initial size. you can use either css or javascript for that.

Recommended way is to use CSS. Add this to your style

#OurText {
    font-size: 14px;
}

See Demo. http://jsfiddle.net/RV5LE/

I have cleaned your code a bit. and next time post your question with a copy on jsfiddle


css('fontSize', fontSizes[0]+ 'px');

Should be:

css('font-size', fontSizes[0]+ 'px');
         ↑

That fontSize is used in animate(). Also you do not need that + 'px' all numeric css values can be given as numeric.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜