Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript更改onclick属性_Javascript_Dynamic_Onclick - Fatal编程技术网

javascript更改onclick属性

javascript更改onclick属性,javascript,dynamic,onclick,Javascript,Dynamic,Onclick,我有一个脚本,允许我的用户阻止/取消阻止用户。它们都在同一个函数“blockToggle(type,user,button)”中,并且根据脚本执行的类型(block或unblock)。但是我想做的是,如果当前用户没有阻止另一个用户,他们可以用按钮来阻止他们,但是当用户单击按钮时,他们必须刷新页面以取消阻止该用户。我希望用户单击onclick属性后立即更改它,而不刷新页面。以下是我尝试过的几件事: document.getElementById("blockBtn").onclick = "blo

我有一个脚本,允许我的用户阻止/取消阻止用户。它们都在同一个函数“blockToggle(type,user,button)”中,并且根据脚本执行的类型(block或unblock)。但是我想做的是,如果当前用户没有阻止另一个用户,他们可以用按钮来阻止他们,但是当用户单击按钮时,他们必须刷新页面以取消阻止该用户。我希望用户单击onclick属性后立即更改它,而不刷新页面。以下是我尝试过的几件事:

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是字符串