2016-04-11 10 views
0

Ich kann keine benutzerdefinierten Ereignisse verarbeiten, stattdessen erhalte ich eine unrecognized selector. Diese Art von Code ist seit vor gearbeitet, aber es hat funktioniert vor kurzem gestoppt:Benutzerdefinierte Ereignisse können nicht ausgelöst werden

setTimeout(function() { 
    Ti.App.fireEvent('clearHistoryTable'); 
}, 3000); 

Ti.App.addEventListener('clearHistoryTable',function(e) { 
    alert('a'); 
}); 
+0

Willkommen zu StackOverflow, danke für das Posten Ihrer ersten Frage. Für die bestmöglichen Antworten sollten Fragen klar sein, was Sie erreichen wollen und was Sie getan haben, um dahin zu kommen, wo Sie jetzt sind. Es gibt einen [tollen Artikel darüber, wie man gute Fragen schreibt] (// stackoverflow.com/help/how-to-ask), bitte überlege, ob du es lesen und deine Frage bearbeiten sollst, um klarer zu sehen, was du willst. –

+0

Stellen Sie sicher, dass Sie dieses Ereignis 'clearHistoryTable' nicht irgendwo entfernt haben! –

+0

Das ist nicht das Problem. Es tut dies auf jedem benutzerdefinierten –

Antwort

1

Ich bin nicht sicher, warum das nicht für Sie funktionieren würde, aber lesen Sie dies für eine effizientere Art und Weise, die Art der zu handhaben Ereignis ... http://www.tidev.io/2014/09/10/the-case-against-ti-app-fireevent-2/

+0

Ich muss in der Lage sein, diese Funktionalität zu verwenden. –

+0

Ich habe nur den von Ihnen bereitgestellten Beispielcode zugrunde gelegt. Wenn Sie das Ereignis sowohl auf der Javascript-Seite auslösen als auch erhalten, müssen Sie Ti.App nicht verwenden. In der Tat, wie der Artikel, den ich gepostet habe, bespricht, ist es weniger effektiv, dies zu tun, weil es die Kroll-Brücke zweimal überquert und nicht muss. –

+0

Ja, ich musste darauf zurückgreifen, aber es ist nicht ideal und ist ein großer Schmerz in den Arsch, wie die App größer wird. Ich muss nur mein Ereignis aufrufen, um eine Tabelle zu löschen und sie von einem anderen Fenster aus neu zu laden. –