在javascript中将值转换为动态变量的问题

时间:2012-06-16 17:58:35

标签: javascript jquery variables

selectedsong div有不同的链接与不同的rel =“”...而问题是......

我正在使用它:

selectedBtn = $('#selectedsong a');
selectedBtn.click(function()
{
    self.selectedsong($(this).attr('rel'));
    return false;
});

selectedsong: function(number)
{
    $('#selectedsong').html('new content with new links, rel, and more...');
    selectedBtn = $('#selectedsong a'); <---- THE PROBLEM IS HERE,
}

问题在于,在第一次点击时它可以正常工作,但是当#selectedsong内容发生变化时,selectedBtn = $('#selectedsong a');不能正常工作,因为selectedBtn.click(function()不起作用:'(

非常感谢!

2 个答案:

答案 0 :(得分:1)

使用

$('#selectedsong').on('click','a',function(e)
{
    e.preventDefault(); // prevent default behavior of anchor click

    self.selectedsong($(this).attr('rel'));

    //return false;  dont use return false as it does more work than you need
});
selectedsong: function(number) 
{
  $('#selectedsong').html('new content with new links, rel, and more...');

}

随着HTML内容的更改,您需要使用事件委派。

详情请阅读.on()

答案 1 :(得分:0)

我认为问题是您更改了#selectedsong内的html,并从中删除了<a>标记,而这正是您尝试选择的内容,是{{ 1}}标记在<a>内。也许您可以尝试选择#selectedsong而不是锚标签?或者当您更改html时,请更改#selectedsong的html。