は、私がクリックしたli要素を識別するために問題を抱えている、彼女は、HTMLの構造である:私は私にProduct_5を与えるProduct_5警告にクリックのでどのようにワンクリックを取得するためにクリックネストしたli要素の後に
<section class="right_menu" id="right_menu">
<div class="menu_pusher">
<ul id="0">
<li><a href="#">Product_1</a></li>
<li><a href="#">Product_2</a></li>
<li><a href="#">Product_3</a></li>
<li><a href="#">Product_4</a></li>
<li class="Product_5"><a href="#">Product_5</a>
<ul>
<li class="Article_1"><a href="#">Article_1</a>
<ul>
<li><a href="#">Detail_1</a></li>
<li><a href="#">Detail_2</a></li>
<li><a href="#">Detail_3</a></li>
</ul>
</li>
<li><a href="#">Article_2</a></li>
<li><a href="#">Article_3</a></li>
<li><a href="#">Article_4</a></li>
</ul>
</li>
<li><a href="#">Product_4</a></li>
</ul>
</div>
</section>
ので大丈夫ですが、私はArticle_1警報Article_1とArticle_5 agein、それはダブルクリックのように見えるが、私は今の方法を与えてくださいclikcしたとき。
function has_ul(element){
if((element.getElementsByTagName('li').length >= 1))
return true;
else
return false;
}
$(document).ready(function()
{ $('#right_menu .menu_pusher ul li').on('click',rout);})
var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0,
open = false;
function rout(){open?jsddm_close():jsddm_open(this);}
function jsddm_open(el)
{
//open=true;
jsddm_canceltimer();
if(has_ul(el)){
var lef = parseInt($('.menu_pusher').css("left")) - 220;
alert(el.className);
$('.menu_pusher').css('left', lef);
return false;
}
}
function jsddm_close()
{
if(ddmenuitem) ddmenuitem.css('display', 'none');
open=false;}
function jsddm_timer()
{ closetimer = window.setTimeout(jsddm_close, timeout);}
function jsddm_canceltimer()
{ if(closetimer)
{ window.clearTimeout(closetimer);
closetimer = null;}}
だから私はli要素に到達する方法はクリック:
これはjavascriptのコードですか?ここでは、この例へのリンクは次のとおりです。
https://jsfiddle.net/rwqc9bje/
申し訳ありません - 私は2つの李要素のクリックを取得するように?この質問は正しい – cyprian
イベント変数をクリック関数に渡してevent.stopPropagation()を呼び出す必要があります。そのため、親の子のクリックハンドラを呼び出すことはできません。 –