Click On An Element Highlights Other Element
Is there any way to change the attributes of an element when clicking on another element? For example, consider this approach where I have a link like so: Clic
Solution 1:
This will work with multiple links:
change your css to:
.clickTarget.target {
color: #4f8dd5;
}
give your links a common class ie link
$('a.link').on('click', function() {
$('.target').removeClass('target');
var id = $(this).attr('href');
$(id).addClass('target');
returnfalse;
});
Solution 2:
Add an attribute data-id
(or other names) to your a
link to specify the id of the associated span
.
<ahref="#100"data-id="100">Click me!</a>
And here is javascript:
window.onload = function () {
var alinks = document.getElementsByTagName('a');
for (var i = 0; i < alinks.length; i++) {
alinks[i].addEventListener('click', function () {
var id = this.getAttribute('data-id');
var span = document.getElementById(id);
span.style.color = '#4f8dd5';
});
}
}
See example at jsFiddle
Solution 3:
Suppose something like this should work for you:
CSS:
.target{
color:#4f8dd5;
}
HTML:
<ahref="#"data-target="#100">click me<a>
JS:
$(document).on("click", "a", function(e) {
if($(this).data("target")) {
e.preventDefault(); //just to avoid # appearing in address after click.
$(".target").removeClass("target");
$($(this).data("target")).addClass("target");
}
})
This way ANY (even if it was added after code above is executed) link will run a function and if it has a data-target attribute, it will be used as a jquery selector to find an element which should be highlighted.
UPD:
Changed to reflect behavior of target (only one element should be highlighted at once) pointed by David Fregoli
Solution 4:
Try this one
$("a").bind('click',function(e){
if(!$("span.clickTarget").hasClass('changeTextColor')){
$("span.clickTarget").addClass('changeTextColor');
}
});
css:
.changeTextColor {
color: #4f8dd5;
}
Post a Comment for "Click On An Element Highlights Other Element"