jQuery Lavalamp:Lavalampの外側のハイパーリンクを使用して、必要なLIでLavalampのハイライトを移動/設定する方法
質問
今、この質問は以前に尋ねられましたが、私は答えを得ることができません。私はその内部に4つのliが付いたLavalampを持っています。それぞれをクリックして、Divにいくつかのコンテンツをロードします。
それはすべて正常に機能します。今、私はそのラバランプの外の同じページのどこかにハイパーリンクを持っています。そのリンクをクリックすると、Lavalampのハイライトが特定のLIに移動してそこにとどまる必要があります。
自分自身を明確にするために、私はこのようになるラバランプliを持っています:家、仕事、約、連絡先。また、ページのどこかに「連絡先」リンクがあります。 [連絡先]リンクをクリックすると、Lavalampはハイライトをどこにいても、4番目のオプション「連絡先」に移動する必要があります。
解決
使用している場合 このLavalampプラグイン, 、使用する必要があります 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>
脚本
$(document).ready(function(){
$('ul#menu').lavaLamp();
$('.contact').click(function(){
$('#menu a[href*=contact]').parent().trigger('mouseenter').trigger('click');
return false; // added to prevent propogation
});
});
笑、OK、他のLavalampプラグインを使用しているので...これが使用できるコードです。また、Lavaplampプラグインはクリック関数を提供するため、そこに関数を追加することでJavaScriptを目立たずにしました(新しいデモ).
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');
});
});
他のヒント
さらに詳細があります。これが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>
これで、コンテンツが適切にロードされています。しかし、「作業」または「連絡先」のリンクをクリックすると、ラバランプの蛍光ペンが対応するLiに移動することも望みます。 IE「作業」と「連絡先」。
ここにあるLavalampバージョンを使用しています: http://gmarwaha.com/blog/?p=7