Reputation: 1329
I have a hidden menu that is connected to a visible menu. Whenever a link is clicked on the visible menu, I need that corresponding link clicked on the hidden menu. However, what I have tried is not producing any results.
$('#visible-menu li:first-child a').click(function() {
$('#hidden-menu li:first-child a').click();
})
$('#visible-menu li:nth-child(2) a').click(function() {
$('#hidden-menu li:nth-child(2) a').click();
})
$('#visible-menu li:last-child a').click(function() {
$('#hidden-menu li:last-child a').click();
})
#hidden-menu {
list-style-type: none;
}
#hidden-menu li a {
color: transparent;
}
<ul id="hidden-menu">
<li><a href="http://facebook.com" target="_blank">Hidden</a></li>
<li><a href="http://twitter.com" target="_blank">Hidden</a></li>
<li><a href="http://pinterest.com" target="_blank">Hidden</a></li>
</ul>
<ul id="visible-menu">
<li><a href="#">Link One</a></li>
<li><a href="#">Link Two</a></li>
<li><a href="#">Link Three</a></li>
</ul>
Upvotes: 2
Views: 1062
Reputation: 193261
You need to call native click
method of the link element, since you don't bind jQuery event handlers you can trigger:
$('#visible-menu li:first-child a').click(function () {
$('#hidden-menu li:first-child a')[0].click();
});
$('#visible-menu li:nth-child(2) a').click(function () {
$('#hidden-menu li:nth-child(2) a')[0].click();
});
$('#visible-menu li:last-child a').click(function () {
$('#hidden-menu li:last-child a')[0].click();
});
Demo: http://jsfiddle.net/w5x3wt6k/
Btw, you can shorten your code if items indexes from visible menu correspond to hidden ones:
$('#visible-menu li').on('click', 'a', function (e) {
var index = $(e.delegateTarget).index();
$('#hidden-menu li:eq(' + index + ') a')[0].click();
});
Upvotes: 2
Reputation: 36
Try with:
$('#visible-menu li:first-child a').click(function() {
$('#hidden-menu li:first-child a')[0].click();
})
Upvotes: 1