Javascript 使用$(this)获取单击的元素
嘿,我有一个愚蠢的问题,我希望你能帮我解决它。我有一些“a”元素,我只想在单击时添加一个活动类 我试过这个:Javascript 使用$(this)获取单击的元素,javascript,jquery,Javascript,Jquery,嘿,我有一个愚蠢的问题,我希望你能帮我解决它。我有一些“a”元素,我只想在单击时添加一个活动类 我试过这个: <a href="javascript:mifunction()"></a> js: function mifunction(){ $(this).addClass('active'); } js: 函数mifunction(){ $(this.addClass('active'); } 但它不起作用,所以我尝试了这个: <a></a&
<a href="javascript:mifunction()"></a>
js:
function mifunction(){
$(this).addClass('active');
}
js:
函数mifunction(){
$(this.addClass('active');
}
但它不起作用,所以我尝试了这个:
<a></a>
js:
$('a').click(function() {
$(this).addClass('active');
});
js:
函数mifunction(){
$('a')。单击(函数(){
$(this.addClass('active');
});
}
你知道怎么解决这个问题吗
多谢各位 试着像下面这样做
<a class="link" href="javascript:void(0)"></a>
$(function () {
$('.link').click (function () {
$(this).addClass('active');
});
});
$(函数(){
$('.link')。单击(函数(){
$(this.addClass('active');
});
});
试着像下面这样做
<a class="link" href="javascript:void(0)"></a>
$(function () {
$('.link').click (function () {
$(this).addClass('active');
});
});
$(函数(){
$('.link')。单击(函数(){
$(this.addClass('active');
});
});
您正在混合和匹配使用DOM和JavaScript的新旧方法
应该行得通
只需将其放在$(document.ready(function(){})中即可代码>
所以。。从字面上看应该是这样的:
<script type="text/javascript">
$(document).ready(function() {
$('a').click(function() {
$(this).addClass('active');
});
});
</script>
<a>Click me</a>
$(文档).ready(函数(){
$('a')。单击(函数(){
$(this.addClass('active');
});
});
点击我
还有,如果你只是想改变一下。。您可以通过CSS执行此操作
对于活动:a:Active{color:orange;}
对于访问:a:visted{color:green;}
您正在混合和匹配使用DOM和JavaScript的新旧方法
应该行得通
只需将其放在$(document.ready(function(){})中即可代码>
所以。。从字面上看应该是这样的:
<script type="text/javascript">
$(document).ready(function() {
$('a').click(function() {
$(this).addClass('active');
});
});
</script>
<a>Click me</a>
$(文档).ready(函数(){
$('a')。单击(函数(){
$(this.addClass('active');
});
});
点击我
还有,如果你只是想改变一下。。您可以通过CSS执行此操作
对于活动:a:Active{color:orange;}
对于已访问:a:visted{color:green;}
它在这里处理您的第二个示例:
您可能需要将jQuery代码包装到:
$(function() {
$('a').click(function() {
$('a.active').removeClass('active'); // you may also want to remove previous
$(this).addClass('active');
});
});
还要确保在HTML中包含jQuery库路径:
<script type="text/javascript" src="/path/jQuery.min.js"></script>
它在这里与您的第二个示例一起工作:
您可能需要将jQuery代码包装到:
$(function() {
$('a').click(function() {
$('a.active').removeClass('active'); // you may also want to remove previous
$(this).addClass('active');
});
});
还要确保在HTML中包含jQuery库路径:
<script type="text/javascript" src="/path/jQuery.min.js"></script>
您的问题一定存在于其他地方,因为这样做很好:
$('a').click(function () {
$(this).addClass('active');
});
如果要动态创建锚定,则应使用.on()
:
$('#container').on('click', 'a', function () {
$(this).addClass('active');
});
带有.on()
的示例:
.on()
的文档:您的问题必须存在于其他地方,因为这样可以正常工作:
$('a').click(function () {
$(this).addClass('active');
});
如果要动态创建锚定,则应使用.on()
:
$('#container').on('click', 'a', function () {
$(this).addClass('active');
});
带有.on()
的示例:
.on()
:您的第二个代码示例应该可以做到这一点。也许你的程序中有什么地方出错了?肯定有什么地方出错了,太奇怪了,你认为可能是什么?你的第二个代码示例应该会这样做。也许你的程序出了什么问题?肯定是出了什么问题,太奇怪了,你认为它可能是什么?我已经做了,但它不起作用,我不明白可能是什么:(我已经做了,但它不起作用,我不明白可能是什么:(它不起作用,它说在void()中有一个语法错误) part@lilymz我的坏..它应该是:void(0)
它不起作用,它说void()中有语法错误part@lilymz我的坏..它应该是:void(0)
不,我做了所有这些事情,但它不起作用。我正在创建那些“a”元素,你认为这是问题吗?是的。这可能是个问题。试试:$('a')。在('click',function(){/**你的代码**/})上
yay!它成功了,谢谢!你能解释一下为什么会发生这种情况吗?请你把它作为一个答案贴出来好吗?以防万一有人有同样的问题。通常jQuery是在现有的HTML上实现的。你需要特别告诉我,它也将在未来的HTML上实现。用你的新要求编辑我的答案。不,我做了所有这些我正在以友好方式创建那些“a”元素,你认为这是个问题吗?是的。这可能是个问题。请尝试:$('a')。在('click',function(){/**你的代码**/})上
yay!它成功了,谢谢!你能解释一下为什么会发生这种情况吗?你能把它作为一个答案发布吗?以防万一有人有同样的问题。通常jQuery是在现有的HTML上实现的。你需要特别告诉我,它也将在未来的HTML上实现。用你的新要求编辑我的答案。