为什么.click事件处理程序在这里没有更新?

时间:2011-06-02 10:20:44

标签: javascript jquery html dom onclick

我将表行传递给一个函数,该函数应该更新锚点上的onclick属性。

无论我尝试过什么,我都无法将其设置为新值。我可以看到它是jQuery选择锚点。但是当我在after之后发出警报时,onclick属性仍然指向相同的值而不是提供给函数的'url'参数:

function modifyTrEditUrl(tr, url) {

           console.log(tr.find('td:eq(6) a')[0]);

           tr.find('td:eq(6) a')
                .attr('onclick', url); // I have tried 
                                       //.click(function(e){..}) way too!

           console.log(tr.find('td:eq(6) a')[0]); //still the same value! :(
        }

有任何建议吗?

4 个答案:

答案 0 :(得分:1)

我不确定,但听起来您可能会将onClick属性与HREF属性混淆。单击链接时,将使用HREF属性中的URL。

onClick属性实际上用于触发Javascript内容。也就是说,如果你使用的是jQuery,你应该坚持使用bindlive函数(click是一个包装器)。

答案 1 :(得分:1)

我不是jQuery(甚至是javascript)专家,但我想从你的代码中,你试图将onclick属性的值设置为url。

.attr('onclick', url);

我知道在标签中,应该为onclick属性分配一个javascript函数。我认为代码正在尝试创建像

这样的标签
<a onclick=url>

我应该url是一个字符串对象。也许这就是错误的原因。

答案 2 :(得分:0)

使用.bind或.live,.live来进行后期绑定

答案 3 :(得分:0)

如何使用

 tr.find('td:eq(6) a').attr('href', url);