2012-05-03 2 views
0

아래 스크립트는 배열의 임의 색상을 div id에 적용하고 호버시 색상을 변경합니다. div 클래스를 반복하고 임의의 색상을 페이지의 모든 클래스에 적용하도록 수정하고 싶습니다. 분명히 클릭 함수는 id에 의해 수행되어야하지만, div 클래스를 통해 루핑하는 방법이 있으므로 상상할 때마다 다른 임의의 색상이 변경된다고 상상해보십시오.div id에 대한 jQuery 스크립트를 루프 div 클래스로 변환

누군가가이 문제를 해결할 수 있습니까?

감사

$(document).ready(function() { 
    var test = $("#example").text().split(''); 

    var normal = generateColors(test); 
    var hover = generateColors(test); 
    $("#example").html(normal); 

    $("#example").hover( 
     function(event) { $("#example").html(hover) }, 
     function(event) { $("#example").html(normal) }); 

    $("#example").click(function() { 
    location.href = "http://www.google.co.uk"; 
    }); 

}); 

function generateColors(characters) { 
    var result = ""; 
    var i = 0; 
    for(i=0; i < characters.length; i++) { 
     result += "<span style='color:"+getColor()+"'>"+characters[i]+"</span>"; 
    } 

    return result; 
}   

function getColor() { 
    var colList = ['#7EA404', '#14AFB0','#B05718', '#B0A914', '#B01617','#902BB0', '#B003A2', '#4A429C','#33821E', '#226795', '#D0B600','#886833']; 

    var i = Math.floor((Math.random()*colList.length)); 
    return colList[i]; 
} 
+0

http://api.jquery.com/jQuery.each/ –

답변

1

처럼 뭔가를 찾고 있으며, 다른 요소에 저장하면 다음 작업을 수행 할 수 있습니다.

$(".example").each(function() { 
    var text = $(this).text().split(''), 
     normal = generateColors(text), 
     hover = generateColors(text); 

    $(this).html(normal).data('hover', hover).data('normal', normal); 
}); 

$(".example").hover( 
    function() { 
     $(this).html($(this).data('hover')); 
    }, 
    function() { 
     $(this).html($(this).data('normal')); 
}); 

클릭 할 때 location.href로 각 링크를 설정하면 정말 나쁜 생각이지만, 당신에게 달렸습니다.

+0

고마워, 그게 내가 찾고 있었던거야. jQuery와 링크를 설정 한 이유는 div 내의 hrefs가 작동하지 않기 때문입니다. 이제는 클래스 "예제"를 링크에 추가하면 작동한다는 것을 알게되었습니다. 감사! – Nick

0

은 분명히 클릭 기능 내가 그 것이 왜 확실하지 않다 ID

에 의해 수행되어야 할 것이다.

당신은 당신이 원하는 경우 클래스를 통해 객체의 jQuery를 배열에 클릭 기능을 적용 할 수

$('.myDivs').click(...) 
+0

각 div의 URL이 다른 경우? – Nick

+0

jQuery를 통해 각 div에 URL을 할당하고 있습니까? 데이터를 * 속성에 URL을 저장하는 것이 좋습니다 것이지만, 나는 당신이 무엇을 목표로하는지 완전히 확신하지 못합니다. –

+0

위에서 보았 듯이 단일 DIV id를 사용하는 방법입니다. 나는 단순히 페이지의 여러 DIV/링크에 색상 효과를 적용하려고합니다. 무작위 색상 효과는 동일하지만 각 색상이 다른 페이지로 연결됩니다. – Nick

-2

당신이 색상을 적용하려면

$('div').each(function(){ 
    //code 
}) 
+0

낮은 품질 및 질문과 같이 질문에 답변하는 것이 매우 목표가 아닙니다. (너무 일반적인) – sg3s