2013-03-26 3 views
0

Привет, у меня есть этот код, чтобы изменить размер шрифта абзаца с помощью 3 кнопок, я хотел бы знать, какой метод я могу использовать, чтобы не повторять одни и те же строки и сделать этот код более компактным. много :)изменить размер шрифта с помощью javascript

window.addEventListener('load', inicio, false); 

function inicio(){ 
var boton1 = document.getElementById('boton1'); 
var boton2 = document.getElementById('boton2'); 
var boton3 = document.getElementById('boton3'); 

boton1.addEventListener('click', fuente10, false); 
boton2.addEventListener('click', fuente13, false); 
boton3.addEventListener('click', fuente20, false); 
} 

function fuente10(){ 
var parrafo = document.getElementById('parrafo'); 
parrafo.style.fontSize='10px' 
} 

function fuente13(){ 
var parrafo = document.getElementById('parrafo'); 
parrafo.style.fontSize='13px' 
} 

function fuente20(){ 
var parrafo = document.getElementById('parrafo'); 
parrafo.style.fontSize='20px' 
} 

я думал в цикле, но я не могу понять, как это сделать:/

+0

Почему вы не используете jQuery? Это слишком просто для достижения этой цели с помощью jQuery! –

+0

@ RutwickGangurde - jQuery не нужно делать что-то такое основное. –

+0

im просто triying, чтобы полностью понять javascript, чтобы лучше программировать, просто изучая :) –

ответ

3

Try что-то вроде этого

window.addEventListener('load', inicio, false); 

function inicio(){ 
var boton1 = document.getElementById('boton1'); 
var boton2 = document.getElementById('boton2'); 
var boton3 = document.getElementById('boton3'); 

boton1.addEventListener('click', function() { setFont("10px");}, false); 
boton2.addEventListener('click', function() { setFont("13px");}, false); 
boton3.addEventListener('click', function() { setFont("20px");}, false); 
} 

function setFont(value){ 
    var parrafo = document.getElementById('parrafo'); 
    parrafo.style.fontSize= value; 
} 

Update Другой Approch (не тестировался, но должен работать)

window.addEventListener('load', inicio, false); 
function inicio() { 
    var fontDetails = {"boton1" : "10px" , "boton2" : "13px" , "boton3" : "20px"}; 
    var parrafo = document.getElementById('parrafo'); 
    var domElement = ""; 
    var element = ""; 

    for (element in fontDetails) 
    { 
     domElement = document.getElementById(element); 
     domElement.addEventListener('click', function() { parrafo.style.fontSize= fontDetails[element]; }, false); 
    } 
} 

Вы также можете удалить события окно загрузки обработчика и функции INICIO и попробовать себя функцию выполнения, как этот

(function() { //your code here })(); 
+0

Это работает действительно хорошо, неплохо ли сделать функции анонима вызова функции setFont? –

+0

Нет проблем с AFAIK, мы можем так называть. – kiranvj

+0

спасибо, это хорошее решение :) –

1

может быть, это изменение может помочь вам:

window.addEventListener('load', inicio, false); 

    var boton; 

    function inicio() 
    { 
     modificar('boton1', 10); 
     modificar('boton2', 13); 
     modificar('boton3', 20); 
    } 

    function modificar(id, size) 
    { 
     boton = document.getElementById(id); 
     boton.onclick=function(){fuente(size)}; 
     console.log(boton); 
    } 

    function fuente(size) 
    { 
     var parrafo = document.getElementById('parrafo'); 
     parrafo.style.fontSize=size+'px'; 
    } 
+0

Этот ddnt работал для меня, похоже, когда окно загружается, он по умолчанию задает размер шрифта 20 для абзацев, а кнопки не работают:/ –

+0

Я внесла некоторые изменения. в настоящее время работает! =) – Superlandero

+0

теперь он работает спасибо вам за помощь yuor! –

Смежные вопросы