Я пробовал все, что я нашел в Stack Overflow, но я не могу заставить это работать. Вот мой код.Получить идентификатор из Event Trigger
$(document).ready(function(){
$(".category, .submenu").mouseenter(function(){
var i = 0;
var id = "#category1" /*-- $(obj).attr("id"); */
if (id == "#category1") {i = 1};
$("#submenu" + i).toggleClass("submenuHover");
$("#category" + i).toggleClass("categoryHover");
});
$("#category1, #submenu1").mouseleave(function(){
$("#submenu1").toggleClass("submenuHover")
$("#category1").toggleClass("categoryHover");
});
$("#category2, #submenu2").mouseenter(function(){
$("#submenu2").toggleClass("submenuHover");
$("#category2").toggleClass("categoryHover");
});
$("#category2, #submenu2").mouseleave(function(){
$("#submenu2").toggleClass("submenuHover");
$("#category2").toggleClass("categoryHover");
});
});
<a id="category1" class="category" href="#">Category 1</a>
<div id="submenu1" class="submenu">
<div>
<b>Column 1</b>
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
<li><a href="#">Item 5</a></li>
</ul>
</div>
<div>
<b>Column 2</b>
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
<li><a href="#">Item 5</a></li>
</ul>
</div>
</div>
<a id="category2" class="category" href="#">Category 2</a>
<div id="submenu2" class="submenu">Submenu #2
<div>
<b>Column 1</b>
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
<li><a href="#">Item 5</a></li>
</ul>
</div>
<div>
<b>Column 2</b>
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
<li><a href="#">Item 5</a></li>
</ul>
</div>
</div>
линия> вар ID = "# category1"/* - $ (OBJ) .attr ("ID"); */
есть, где моя проблема.
Я прокомментировал $ (obj) .attr ("id"); и добавил «# category1». Он работает так. Как получить идентификатор, чтобы я мог сконденсировать этот код в один блок? Кроме того, это все еще продолжается, поэтому, когда я выясню этот шаг, я хочу объединить mouseenter и mouseleave, чтобы использовать одно и то же значение i, и пока не знаю, как продолжить эту часть.
Используйте обработчик событий 'this' или' $ (this) 'внутри. ** Ответ: ** Используйте 'this.id' или' $ (this) .attr ('id') ' – Tushar
Да, я пробовал это, и он не работает. Это способ, которым я его реализую? Вот моя строка кода. var id = $ (this) .attr ("id"); Это моя первая программа JavaScript, поэтому, возможно, я не понимаю ничего принципиального в структуре моего кода. – Matt
@Matt Вы уверены, что правильно «попробовали»?Посмотрите на скрипку в моем ответе; Я заработал. – 8protons