#javascript #click #raphael
#javascript #нажмите #raphael
Вопрос:
(Ранее я также пробовал jQuery, который, похоже, тоже не работает.)
У меня есть emitterButton
, который является кругом в Raphael, определенный следующим образом внутри функции:
emitterButton = canvas.circle(emitter_center_x,emitter_center_y,BUTTON_RADIUS)
.attr({'fill':BUTTON_COLOR_UNPRESSED})
.attr({'id':'emitterButton'});
. Когда я пытаюсь подключить обработчик щелчка, через
$(document).ready(function(){
console.log("This is a hi!");
console.log(emitterButton);
emitterButton.click(function(){
console.log("Hi!");
if(emitterButton.attr('fill')==BUTTON_COLOR_UNPRESSED){
console.log("Hi, again!");
emitterButton.attr({'fill':BUTTON_COLOR_PRESSED});
}
});
});
первые два console.log
оператора запускаются, но следующие два нет. Почему моя функция щелчка не работает?
Комментарии:
1. Зачем говорить «Я ранее также пробовал jQuery», когда вы все еще используете jQuery?
2. Ранее я использовал $ (‘#emitterButton’), тег идентификатора jQuery, который я прикрепил к emmiterButton, а не сам элемент emitterButton Raphael в строке emitterButton.click(функция(){…})
3. О … ХОРОШО. Не могли бы вы создать скрипку или что-то подобное, чтобы мы могли больше видеть, что происходит?
4. rawgit.com/ylx/PhET/master/bendingLight/bendingLight.html
5. Я не совсем уверен, что вы можете установить идентификатор элементов Raphael таким образом (я думаю, это может зависеть от версии, но не уверен). Попробуйте emitterButton.node.id =’emitterButton’ из интереса. Я бы также следил за вашей переменной scope в функциях, я думаю, что нет конкретной проблемы, чтобы остановить ее работу там, но вы можете захотеть установить где-нибудь var для emitterButton, чтобы было ясно, что (возможно, я пропустил это).