jQuery没有在链接中插入属性

时间:2014-02-09 09:42:04

标签: javascript jquery html

我有一个向下滑动div的链接,如下所示。但最初这个链接没有onclick处理程序,我使用jQuery代码插入它。

<a href="#" id="Link_1">Show Div</a>

现在以下是jquery代码

  //id comes from a loop which runs from 1 to 15

$("#Link_"+id).attr('onclick','$(\'#Div_'+id+'\').slideToggle(\'slow\');');
$("#Link_"+id).attr('style','color:white;');
$("#Link_"+id).attr('value','0');

最后两行是插入属性,但第一行不起作用,我也没有收到任何错误。我正在使用jQuery 1.4

修改

现在出乎意料的是,我只是靠运气试了一下, 第一行是在jquery 1.9.为什么?

3 个答案:

答案 0 :(得分:4)

你无法添加这样的点击处理程序,请尝试这样做:

$("#Link_"+id).live('click', function(){
    $('#Div_'+id+'').slideToggle('slow');
});

答案 1 :(得分:0)

尝试以这种方式绑定它:

$("#Link_"+id).on("click", function () { 
  $('#Div_'+id+).slideToggle('slow');
});

因为你正在使用jquery 1.4。您需要live而不是on

$("#Link_"+id).live( "click", function() {
 $('#Div_'+id+).slideToggle('slow');
});

答案 2 :(得分:0)

我建议改用.click()

$("#Link_"+id).click(function(){
    $('#Div_'+id).slideToggle('slow');
    return false;
});

回答编辑:jQuery 1.9检查您是否尝试设置事件处理程序并添加处理程序而不是设置属性。 jQuery 1.4没有这样的检查。 (我查看了来源)