我的jQuery和html代码存在问题,当我点击包含<a>
事件的onclick
元素时,没有任何反应。
这是html代码
<a href='http://gomusic.designerbh.com/profile/bar_53d6af107ee03/'>Cabana</a>
<a href='javascript:void(0)' onclick='actus("actuevent_53d6e48c65b68")' style='float:right;width:24px;height:12px;background:url(http://gomusic.designerbh.com/img/arrow.png) no-repeat bottom center'></a>
<span style='float:right;color:#ccc;margin:0px 10px 0px 0px'>49 Minutes ago</span>
<div class='actusevent_53d6e48c65b68' style='z-index:1;position:absolute;width:200px;padding:10px;background:#fff;margin:10px 0px 0px 260px;border:1px solid #ccc;border-radius:5px'>content here</div>
这是JS代码,当我使用此代码时没有任何反应
function actus(b){
$(".actus"+b).hide();
}
但是当我这样做时,代码会警告值122并且工作正常
function actus(b){
alert('122');
}
我已经调试过了。我使用的是最新版本的Chrome和jquery-1.9.1.min.js
答案 0 :(得分:2)
你错了选择javascript,试试
function actus(b){
$(".actus"+b).hide();
}
onclick='actus("event_53d6e48c65b68")'
答案 1 :(得分:1)
您的参数值与您的班级名称不同。
注意onclick='actus("actuevent_53d6e48c65b68")'
和class='actusevent_53d6e48c65b68'
。
另一件事:你试图进入actus()
的元素肯定与你的参数值不匹配。我建议您将参数值更改为以“event_”而不是“actuevent_”开头,或者您可以将actus()
中元素的前缀更改为:$(".actusevent_")
。
答案 2 :(得分:1)
修改强> 下面给Barmars评论 - 你可以简单地拆分它:
function actus(b){
var i = b.split('_');
$(".actusevent_"+b[1]).hide();
}
查看您的班级名称,它包含一个下划线 - _
。你想要的是这个:
function actus(b){
$(".actusevent_"+b).hide();
}
错误:
$('.actus' + b).hide()
时,您正试图致电actusevent
。_
。所以它不会工作。有更有效的方法可以做到这一点。如果您可以控制如何创建DOM元素,则可以创建如下内容:
<a href='javascript:void(0)' id="my-link" data-actus-event='53d6e48c65b68' style='float:right;width:24px;height:12px;background:url(http://gomusic.designerbh.com/img/arrow.png) no-repeat bottom center'></a>
现在创建你的绑定:
$(document).on('click', 'a#my-link', function(e){
e.preventDefault();
var actusevent = $(this).data('actus-event');
$('.actusevent_' + actusevent).hide();
});