2014-07-25 3 views
0

클릭하면 서로 CSS 스타일링을 변경하는 링크 버튼을 만들고 싶습니다. 이 작업 방법에 대한 자습서를 찾았습니다. 중간에이 피들에 표시된대로 작동합니다.Click시 링크의 CSS 변경

http://jsfiddle.net/6m3rb/23/

<a id="btn1" class="btn" href="#" onclick="btn2.style.background='#007eff'; this.style.background='#9a3e01';">Button 1</a> 
<br /><br /> 
<a id="btn2" class="btn" href="#" onclick="btn1.style.background='#007eff'; this.style.background='#9a3e01';">Button 2</a> 

유일한 문제는 링크를 클릭하고 페이지가로드 될 때, 링크의 CSS 스타일링이 다시 정상으로 재설정한다는 것입니다,하지만 난 그게까지 스타일을 유지하려는 다른 링크가 눌려 있습니다.

내가 상상할 수있는 운임으로, 나는이 효과를 처리하기 위해 일부 자바 스크립트를 사용해야하지만, 자바 스크립트는 인터넷에 관해서 내가 가장 강한 지역이 아닙니다.

종류, 그것은 행동의 이미 predifned 라이브러리입니다 당신이 jQuery를 사용하려고 할 것입니다 Neros

+0

문제는 사용자가 페이지를 새로 고침하는 것이므로 클라이언트 측 및 클릭시의 활성 상태를 변경하기 때문에 모든 것이 재설정됩니다. 로드중인 페이지를 확인하고 이에 따라 활성 클래스를 설정해야합니다 (로드시). 프론트 엔드와 백엔드 모두에서이 작업을 수행 할 수 있지만 응용 프로그램을 더 많이 보지 않아도 어느 방법이 더 나은지 말할 수 없습니다. – Stefan

+0

글쎄,이 응용 프로그램은 "선택"할 때 스타일을 변경하는 버튼이 두 개있는 웹 사이트 일뿐입니다. 나머지 응용 프로그램이이 효과를 얻는 데 필요한지 확실하지 않습니다. – Neros

답변

0

이 문제를 직접 해결했습니다. 이미 정렬되지 않은 목록에서 동일한 기능을 수행 했으므로이 목록에 단추를 추가했습니다.

0

을 간주한다. 이 상황에서는 .css() 섹션에 뭔가가 필요합니다. http://api.jquery.com/css/

코드는 당신이 (순수 자바 스크립트보다 사용하기 쉽게) jQuery로 자바 스크립트를 사용할 수있는이

$('#btn1').on('click', function(e){ 
    e.preventDefault(); // In this case I am preventing the link from firing you do not need this if you want to trigger the link, also remove e from your function parameters 
    $('#btn2').css('background-color': 'red'); 
}); 
+0

그의 문제는 클릭 할 때 활성 상태를 변경하는 것이 아니라 페이지를 감지하고 그에 따라 이동하는 것입니다. – Stefan

+0

@StefanV. 나는 너와 똑같은 방식으로 읽지 말아야한다. 나는 정확한 해결책이 무엇인지에 관심이있다. – TheHamstring

+0

맞습니다. 클릭시 활성 상태가 아닙니다. 나는 버튼의 스타일을 변경하고, 어떤 일이 일어날 때까지이 스타일을 유지하기를 원한다.이 경우에는 다른 버튼이 클릭되거나 (또는 ​​웹 사이트가 남아있다). – Neros

0

처럼 보일 것입니다. 그런 다음 onclick 이벤트가있는 함수를 호출 할 수 있습니다.

HTML :

<a id="btn1" class="btn" href="#" onclick="changebtn2()">change color of the second button </a> 
<a id="btn2" class="btn2" href="#">will change color if you click on the first button </a> 

당신은 또한 HTML에 jQuery 라이브러리를 선언해야합니다.

자바 스크립트 :

function changebtn2(){ 
    $("#btn2").removeClass("btn2"); //remove the old class 
    $("#btn2").addClass("btn2change"); //add the new class with a different color 
} 

CSS :

.btn2{ 
    color: red; 
} 
.btn2change{ 
    color: green; 
} 
+0

그 방법은 효과가없는 것 같습니다. 단추를 "만지는"것 같지 않습니다. 이전에 작성한 내용이 영향을 미치는지 확인하기 위해 빈 프로젝트를 만들려고 시도했지만 실제로 그렇지 않습니다. 언급했듯이 스크립팅은 내 장점이 아니지만 "function changebtn2()"는 다소 재미 있습니다. 당신은 그것의 "changebtn2"을 확신합니까? – Neros

+0

Mmmmh ... changebtn2 대신 다른 이름을 선택할 수는 있지만 작동해야합니다. jquery''을 추가하기 전에 ''? –

+0

코드를 추가했는데 이제 실제로 어떤 일이 발생합니다. 그러나 그것은 바이올린과 동일한 행동으로 계속됩니다. href에 "#"을 추가하면 작동하여 스타일을 변경합니다. 그러나 페이지에 대한 링크를 삽입하면 클릭하면 색상이 일시적으로 변경되지만 페이지가로드 될 때 "표준"클래스로 다시 변경됩니다. – Neros

0

그냥 어떤 쿼리를 통과 브라우저를 중지 무효

<a href="javascript:void(0)">Button 1</a> 

이 무효 기능으로 HREF = "#"을 대체 요청으로.

+0

글쎄, 특정 페이지로 연결되는 링크입니다. 이것으로 아무것도하지 않으므로별로 쓸모가 없습니다. – Neros

관련 문제