RxDom:创建新 ID 时不工作
RxDom: not working when new id created
我正在使用 Reactive Extension DOM 来收听来自 DOM 的事件。这是我的示例代码:
var input = document.getElementById('test_id');
var source = Rx.DOM.change(input);
var subscription = source.subscribe(
function (x) {
console.log(x);
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
当 test_id
在页面上且 document.ready
完成时,此代码有效。但是我正在使用 AJAX 请求,所以 test_id
只是在客户端发送和接收 ajax 请求后出现。我怎样才能让 RxDom 通知这个。
谢谢。
您需要重新创建 Observable。
当您调用 document.getElementById('test_id');
并且 ID 为 test_id
的元素不存在时,它 returns 为空。因此没有办法 "refresh" source
Observable 因为它甚至不知道它应该 "refresh".
什么 DOM 元素
所以唯一的方法是在您从 Ajax 调用追加 HTML 之后创建 Observable。
我正在使用 Reactive Extension DOM 来收听来自 DOM 的事件。这是我的示例代码:
var input = document.getElementById('test_id');
var source = Rx.DOM.change(input);
var subscription = source.subscribe(
function (x) {
console.log(x);
},
function (err) {
console.log('Error: ' + err);
},
function () {
console.log('Completed');
});
当 test_id
在页面上且 document.ready
完成时,此代码有效。但是我正在使用 AJAX 请求,所以 test_id
只是在客户端发送和接收 ajax 请求后出现。我怎样才能让 RxDom 通知这个。
谢谢。
您需要重新创建 Observable。
当您调用 document.getElementById('test_id');
并且 ID 为 test_id
的元素不存在时,它 returns 为空。因此没有办法 "refresh" source
Observable 因为它甚至不知道它应该 "refresh".
所以唯一的方法是在您从 Ajax 调用追加 HTML 之后创建 Observable。