2010-08-10 5 views
1

이 질문은 전에 질문되었지만 답변을 얻을 수 없습니다. 나는 그 안에 4 개의 LI가있는 Lavalamp를 가지고 있는데, 각각을 클릭하면 div에있는 일부 내용이로드됩니다.jQuery LavaLamp : lavaLamp 외부의 하이퍼 링크를 사용하여 필수 LI에서 lavalamp 강조 표시를 이동/설정하는 방법

모두 정상적으로 작동합니다. 이제 나는 그 lavalamp 외부의 같은 페이지에 어딘가에 하이퍼 링크를 가지고 있습니다. 그 링크를 클릭하면 lavalamp 강조 표시가 특정 li로 이동하여 거기에 남아 있어야합니다.

분명히하기 위해, 나는 집, 직장, 정보, 연락처와 같이가는 Lavalamp LI를 가지고 있습니다. 또한 페이지의 어딘가에 '연락처'링크가 있습니다. '연락처'링크를 클릭하면 lavaLamp가 하이라이트를 어디에서든지 '연락처'의 네 번째 옵션으로 이동해야합니다.

+0

몇 가지 코드를 제공하면 도움이 될 수 있습니다. 또한 어떤 lavalamp 플러그인을 사용하고 있습니까? – Mottie

답변

1

this lavalamp plugin을 사용하는 경우 demo입니다. 여기에 demo 인 경우 마우스 센터와 클릭 이벤트를 활성화하려면 trigger()을 사용해야합니다.

HTML

<ul id="menu"> 
<li><a href="#home">Home</a></li> 
<li><a href="#work">Work</a></li> 
<li><a href="#about">About</a></li> 
<li><a href="#contact">Contact</a></li> 
</ul> 
<br> 
<a class="contact" href="#contact">contact me!</a> 


당신이 다른 lavalamp 플러그인을 사용하고 있기 때문에 LOL, 좋아, ... 여기에 사용할 수있는 코드는 스크립트

$(document).ready(function(){ 
$('ul#menu').lavaLamp(); 
$('.contact').click(function(){ 
    $('#menu a[href*=contact]').parent().trigger('mouseenter').trigger('click'); 
    return false; // added to prevent propogation 
}); 
}); 
. 또한, lavaplamp 플러그인이 클릭 기능을 제공하기 때문에, 거기에 함수 ( new demo)를 추가하여 자바 스크립트를 눈에 거슬리지 않게 만들었습니다. 좋아

HTML

<ul class="lavalamp"> 
<li class="current"><a href="#home">Home</a></li> 
<li><a href="#work">Work</a></li> 
<li><a href="#about">About</a></li> 
<li><a href="#contact">Contact</a></li> 
</ul> 

<br><br><br> 

<div id="home" class="info"> 
Home page stuff goes here. 
</div> 
<div id="work" class="info"> 
Work information goes here. 
</div> 
<div id="about" class="info"> 
About me. 
</div> 
<div id="contact" class="info"> 
Contact me. 
</div> 

<br><br><br> 

<div class="links"> 
You can see my <a href="#work">work</a> or <a href="#contact">contact me.</a> 
</div> 

스크립트

$(function() { 
// set up lavalamp 
$(".lavalamp").lavaLamp({ 
    fx: "backout", 
    speed: 700, 
    click: function(event, menuItem) { 
    // change information box 
    var $block = $($(menuItem).find('a').attr('href')); 
    $('.info').not($block).hide(); 
    $block.fadeIn(); 
    return false; 
    } 
}); 

// initialize information box 
$('.current').trigger('click'); 

// make links outside of the lavalamp work 
$('.links a').click(function(){ 
    var block = $(this).attr('href'); 
    $('.current').removeClass('current'); 
    $('.lavalamp').find('a[href=' + block + ']').parent().trigger('click'); 
}); 

}); 
+0

Aha..fudgey 당신은 남자 야 !! 감사. GMarwaha의 플러그인을 사용하고 있습니다. 당신이보고 싶다면 아래 코드를 붙여 넣었습니다. – JMDee

+0

내 대답을 업데이트했습니다. 또한, 인라인 자바 스크립트를 제거하고 눈에 거슬리지. – Mottie

+0

아, 또한 두 번째 L을 소문자 l로 만들어 'lavalamp'클래스 이름을 수정했습니다. P – Mottie

0

좀 더 자세히 설명합니다. 여기에 lavalamp 및 그 외부에 하이퍼 링크가 있습니다.

<ul class="lavaLamp"> 
    <li><a href="javascript:content(1)">Home</a></li> 
    <li><a href="javascript:content(2)">Work</a></li> 
    <li><a href="javascript:content(3)">About</a></li> 
    <li><a href="javascript:content(4)">Contact</a></li>  
</ul> 

--- 
<div class="info"> 
// Corresponding information will be loaded here based on javascript:content(num) 
<div> 
--- 

<div> 
    You can see my <a href="javascript:content(2)">work</a> or <a href="javascript:content(4)">contact me.</a> 
</div> 

이제 콘텐츠가 잘로드됩니다. 그러나 'work'또는 'contact me'링크를 클릭하면 lavaLamp의 형광펜을 해당 LI로 옮기고 싶습니다. 즉 '직장'과 '연락'이 있습니다.

여기 LavaLamp 버전을 사용하고 있습니다 : http://gmarwaha.com/blog/?p=7

+0

다음 번에는 답을 추가하는 대신 이러한 추가 세부 정보로 원래 질문을 편집하십시오. 모든 정보를 함께 보관하고 몇 분만 내 답변을 업데이트하십시오. P – Mottie

+0

안녕하세요. 버전의 Lavalamp. 그러나 NIXBOX lavalamp에 대한 완벽한 솔루션을 제공 할 때 플러그인을 변경하고 이에 대한 작업을하고 있습니다.그러나 한 번의 클릭으로 하이라이트가 멈추는 것을 발견했습니다. 그 뒤에있는 이유는 모든 링크 href에있는 javascript : content (num)입니다. 모든 href에서 content (num) 함수 호출을 제거하면 잘 작동합니다. 약간의 코드 충돌이 있습니다. 여기에서 당신의 생각을 나눌 수 있습니까? 추신 : 나는 인라인 자바 스크립트를 제거 할 수 없다 :( – JMDee

관련 문제