我在内联onclick中调用了一个javascript函数,如下所示:
<a href="#" onclick="removeAttribute('foo', 'bar');">Some Link</a>
但是当我点击链接时,没有任何反应。我有其他链接(与其他功能)绑定到onclicks在同一页面上的其他地方正常工作。所有指向“removeAttribute”函数的链接都失败了。
Firebug中没有错误,并且正在调用onclick事件处理程序 - 但由于某种原因,单步执行removeAttribute函数会在jQuery.js中的某个地方结束。在任何时候都不会调用removeAttribute。
如果我这样做:
javascript:removeAttribute('foo', 'bar');
在Firefox的地址栏中。该函数被成功调用。
有人见过这个吗?
答案 0 :(得分:4)
你在调用自己的方法吗?如果是这样,将它称为removeAttribute会很困惑,因为它已被定义为附加到DOM节点的方法。调用事件处理程序时,其作用域定义为单击的节点。您的代码可能在被单击的对象上调用内置方法。尝试使用其他名称或将您的方法放在Javascript对象中,以便可以显式调用它。
答案 1 :(得分:1)
试试这个:
<a href="javascript:removeAttribute('foo', 'bar');">Some Link</a>
由于href值的'#',它可能无法正常工作。因此,将javascript作为href,实际上与将其放在地址栏中是一样的。
答案 2 :(得分:0)
如果你正在使用jQuery,为什么不利用它呢?假设您的removeAttribute()
版本与原生javascript方法removeAttribute()
完全相同,您可以执行以下操作:
<script type='text/javascript'>
$(document).ready(function(){
$('a#somelink').click(function(){
$('#foo').removeAttr('bar');
});
});
</script>