2013-09-14 2 views
0

У меня есть сценарий, который позволяет моим пользователям блокировать/разблокировать пользователей. Они оба находятся в одной и той же функции «blockToggle (type, user, button)», и в зависимости от типа (либо блочного, либо разблокированного) он выполняет этот скрипт. Но то, что я пытаюсь сделать, - это если у текущего пользователя нет другого заблокированного пользователя, они могут заблокировать их кнопкой, но когда пользователь нажимает кнопку, они должны обновить страницу, чтобы разблокировать пользователя. Я хочу, чтобы атрибут onclick сразу изменился, как только пользователь нажмет на него, не обновляя страницу. Вот несколько вещей, которые я пробовал :.Изменение атрибута onclick javascript

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')"}; 

Ни один из этих решений не работал для меня. И я не мог найти решение от поиска Google. Есть ли что-нибудь, что я наблюдаю здесь? Я уверен, что ответы прямо передо мной.

+0

У вас есть синтаксическая ошибка в коде. Посмотрите, как выделен код. – MMM

+0

Являются ли 'unblock',' user' и 'blockBtn' предполагаемыми литеральными строками или именами переменных? Если они переменные, вы не должны помещать их в кавычки. – Barmar

+0

Единственная переменная - это пользователь, который в моем фактическом коде у меня их нет. Цитата – Vince

ответ

1

Я не знаю, как ваша функция blockToggle() выглядит, но попробовать это, без лишних кавычек:

document.getElementById("blockBtn").onclick = function(){ 
    blockToggle(unblock, user, blockBtn); 
}; 

Я предполагаю, что ваша функция blockToggle объявляется и unblockuser & blockBtn объявлены переменные также.

+0

Я думаю, что разблокировать, пользователь и blockBtn - это строки –

+0

@JuanMendes, один из нас должен быть прав :) – Sergio

0

Держитесь подальше от установки обработчиков в виде строк. Просто используйте обычную анонимную функцию, которая вызывает ваш blockToggle.

document.getElementById("blockBtn").onclick = function(){ 
    blockToggle('unblock', 'user', 'blockBtn'); 
}; 
Смежные вопросы