javascript更改onclick属性
我有一个脚本,允许我的用户阻止/取消阻止用户。它们都在同一个函数“blockToggle(type,user,button)”中,并且根据脚本执行的类型(block或unblock)。但是我想做的是,如果当前用户没有阻止另一个用户,他们可以用按钮来阻止他们,但是当用户单击按钮时,他们必须刷新页面以取消阻止该用户。我希望用户单击onclick属性后立即更改它,而不刷新页面。以下是我尝试过的几件事:javascript更改onclick属性,javascript,dynamic,onclick,Javascript,Dynamic,Onclick,我有一个脚本,允许我的用户阻止/取消阻止用户。它们都在同一个函数“blockToggle(type,user,button)”中,并且根据脚本执行的类型(block或unblock)。但是我想做的是,如果当前用户没有阻止另一个用户,他们可以用按钮来阻止他们,但是当用户单击按钮时,他们必须刷新页面以取消阻止该用户。我希望用户单击onclick属性后立即更改它,而不刷新页面。以下是我尝试过的几件事: document.getElementById("blockBtn").onclick = "blo
document.getElementById("blockBtn").onclick = "blockToggle('unblock', 'user', 'blockBtn')";
document.getElementById("blockBtn").setAttribute( "onClick", "javascript: blockToggle('unblock', 'user', 'blockBtn')";
document.getElementById("blockBtn").onclick = function(){ "blockToggle('unblock', 'user', 'blockBtn')"};
这两种解决方案都不适合我。我似乎也无法从谷歌搜索中找到解决方案。这里有我负责的事情吗?我确信答案就在我面前。我不知道你的函数
blockToggle()
是什么样子,但是试试这个,不加额外的引号:
document.getElementById("blockBtn").onclick = function(){
blockToggle(unblock, user, blockBtn);
};
我假设您的函数
blockToggle
已声明,并且unblock
user
&blockBtn
也已声明为变量。不要将处理程序设置为字符串。只需使用一个普通的匿名函数调用您的blockToggle
document.getElementById("blockBtn").onclick = function(){
blockToggle('unblock', 'user', 'blockBtn');
};
代码中有语法错误。看看代码是如何突出显示的。
unblock
、user
和blockBtn
应该是文字字符串还是变量名?如果它们是变量,你不应该把它们放在引号里。唯一一个变量是user,在我的实际代码中,我没有引用它们。我实际上认为这是我代码中的一个语法错误:我只是删除了所有内容,然后重新编写,并使用javascript中的.setAttribute函数工作。如果您刚刚有一个打字错误,请删除这个问题。我认为unblock、user和blockBtn是字符串