2014-01-03 2 views
1

Итак, в следующей скрипте у меня один единичный тест, и он очень странный. Похоже, что метод jQuery's .trigger, но события не пузырятся даже до его ближайшего родителя.jQuery .trigger не пузырится внутри jsfiddle

http://jsfiddle.net/fresheyeball/8875S/2/

it.only "clicking on and off", (done) -> 
    $('#the-zone').parent().on 'click', -> 
     done() 

    $('#the-zone').trigger 'click' 
    expect(scope.didFire).to.be.null 

Я не сделал ничего, чтобы помешать барботажа. Что здесь происходит? Он отлично работает с кармой и фантомами.

Я знаю, что событие bubbling работает в jsfiddle, что я не могу понять, почему он не работает в моем примере.

ответ

1

У вас есть дополнительный обработчик кликов на #the-zone, который предотвращает пузырение. удаление его заставляет пройти тест.

http://jsfiddle.net/8875S/4/

$('#the-zone').off("click").trigger 'click' 

Выяснить, где это событие кликов из и очистить его там. Я не знаком с coffeescript mocha или angularjs, поэтому мне не удалось найти обработчик кликов src.

+1

Добавление 'true' после' isoff = 'в вашем модуле также решает его, поскольку в противном случае оно возвращает значение' isoff'. что бросило меня за петлю. Я все еще презираю кофе. вы не сказали ему возвращать что-либо из этой функции, и все же это так. Думаю, вы могли бы просто добавить 'return' вместо этого для того же эффекта. http://jsfiddle.net/8875S/8/ –

+0

Добавление 'return' - это то, что я закончил делать. Просто нужен толчок, спасибо @ Кевин. – Fresheyeball

+0

Нет проблем. Однажды я сделаю погружение в угловые. просто нужно найти подходящее время. –

Смежные вопросы