Итак, я новичок в javascript. Мой код выглядит следующим образом, она основана на XAML файл с холстом и пару границ в нем:Как игнорировать событие в javascript?
var defaultPage = null;
var aantalKliks;
var correcteBorders;
var incorrecteBorders;
var geenAntwBorders;
function onLoaded() {
defaultPage = document.getElementById('DefaultPage');
alert('In onloaded van Default.xaml.');
aantalKliks = 0;
aantalBorderKliks = 0;
correcteBorders = new Array();
for (var i = 0; i < 3; i++) {
correcteBorders[i] = defaultPage.content.findName('CorrecteBorder' + i);
}
incorrecteBorders = new Array();
for (var i = 0; i < 3; i++) {
incorrecteBorders[i] = defaultPage.content.findName('IncorrecteBorder' + i);
}
geenAntwBorders = new Array();
for (var i = 0; i < 3; i++) {
geenAntwBorders[i] = defaultPage.content.findName('GeenAntwBorder' + i);
}
}
function OnCanvasClicked() {
if (aantalKliks == 2) {
aantalKliks = 0;
}
if (aantalKliks == 0) {
for (var i = 0; i < correcteBorders.length; i++) {
correcteBorders[i].Visibility = 'Visible';
}
for (var i = 0; i < incorrecteBorders.length; i++) {
incorrecteBorders[i].Visibility = 'Visible';
}
for (var i = 0; i < geenAntwBorders.length; i++) {
geenAntwBorders[i].Visibility = 'Visible';
}
} else if (aantalKliks == 1) {
for (var i = 0; i < correcteBorders.length; i++) {
correcteBorders[i].Visibility = 'Collapsed';
}
for (var i = 0; i < incorrecteBorders.length; i++) {
incorrecteBorders[i].Visibility = 'Collapsed';
}
for (var i = 0; i < geenAntwBorders.length; i++) {
geenAntwBorders[i].Visibility = 'Collapsed';
}
aantalKliks++;
}
function borderClicked(sender) {
for (var i = 0; i < correcteBorders.length; i++) {
correcteBorders[i].Visibility = 'Collapsed';
}
for (var i = 0; i < incorrecteBorders.length; i++) {
incorrecteBorders[i].Visibility = 'Collapsed';
}
for (var i = 0; i < geenAntwBorders.length; i++) {
geenAntwBorders[i].Visibility = 'Collapsed';
}
sender['Visibility'] = 'Visible';
}
Функция OnCanvasClicked срабатывает при нажатии кнопки в любом месте холста, и делает все границы исчезают/снова. Функция borderClicked запускается при нажатии определенной границы. Функция borderClicked запускается, когда я нажимаю на определенную границу, однако функция OnCanvasClicked также запускается сразу после нее, что вызывает нежелательный результат. Мне кажется, что мне нужно каким-то образом игнорировать функцию OnCanvasClicked, если я нажимаю на границу, я сделал google this но, честно говоря, я не совсем понял, что они имели в виду в большинстве решений, поэтому я надеялся, что кто-то сможет объяснить это мне простым способом, что мне нужно делать (и что я делаю).
вы можете поделиться, как 'событие borderClicked' зарегистрировано –
Эффект, который вы смотрите, называется событием, «пузырящимся» с документом. Чтобы остановить это, вам нужно разбить эту цепочку. Вы бросили рыбу, если вы хотите научиться ловить рыбу, вы должны посмотреть здесь, чтобы начать понимать [event bubbling] (http://www.quirksmode.org/js/events_order.html) – Daniel