我正在嘗試將onclick
事件添加到特定li
的某個標記,該標記在ul
的編號爲#nav
之下。選擇多個li,它是使用jquery的第一個孩子
HTML結構:
<ul id="nav">
<li><a href="#">link1</a></li>
<li>
<a href="#">link2</a>
<ul>
<li><a href="#">innerlink1</a></li>
<li><a href="#">innerlink2</a></li>
</ul>
</li>
<li><a href="#">link3</a></li>
<li>
<a href="#">link4</a>
<ul>
<li><a href="#">innerlink1</a></li>
<li><a href="#">innerlink2</a></li>
</ul>
</li>
</ul>
jQuery的
$(document).ready(function() {
$("ul#nav li").eq(1).children().first().click(function(){
$(this).attr('onclick', 'return false;');
return false;
});
$("ul#nav li").eq(5).children().first().click(function(){
$(this).attr('onclick', 'return false;');
return false;
});
});
如果你看到的,我寫的jQuery兩次選擇已經得到了另一個ul
裏面的一個li
項目的元素和onclick
事件添加到它。這工作正常。但是有沒有辦法減少我的代碼並使其更加乾淨?
'$(this).attr('onclick','return false;');'這種反模式在你的代碼中做了什麼?去掉它。 – undefined
你是什麼意思反模式?你能解釋一下嗎?我想學習。 – user3531929
我的意思是使用jQuery設置html事件屬性是一個壞主意,除了根據[關注點分離](http:// stackoverflow。問題/問題/ 98734 /什麼是分離關注)原則。在你的代碼中'return false'做你想要的,它阻止事件的默認動作並停止它的傳播。 – undefined