onclick html和jquery不起作用

时间:2014-07-29 01:15:12

标签: javascript php jquery html

我的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

3 个答案:

答案 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
  • 您还缺少jQuery函数中的_。所以它不会工作。

有更有效的方法可以做到这一点。如果您可以控制如何创建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();
});