首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxJS -将onClicks(JS)更改为myEvents(RxJS)

RxJS -将onClicks(JS)更改为myEvents(RxJS)
EN

Stack Overflow用户
提问于 2021-11-24 18:46:22
回答 1查看 60关注 0票数 1

我对RxJS非常陌生,我需要将我的onClicks更改为myEvents,我遇到了一个问题,我无法与在JS中创建的按钮进行交互,因为它们不是在myEvent中创建的。该项目是一个简单的笔记应用程序。蒂娅!stackblitz:https://stackblitz.com/edit/js-w9lthb?file=index.html

代码语言:javascript
复制
fromEvent(button, "click").subscribe(() => {
    i++;
    j++;
    let NotesArea = document.getElementById("NoteArea").value;
    let Colour = document.getElementById("colours").value;
    NotesArray.push(NotesArea);

    document.getElementById("NotesCollection").innerHTML += ("<div id=\"Div"+ i +"\" > <button id=\""+ i +"\">Edit Note</button> <button id=\""+ i +"\">Delete Note</button><div id = \"Note"+ i +"\" > <p>" + NotesArea + "</p> </div></div>");
    document.getElementById(("Note"+i)).style.backgroundColor = Colour;

    const editbutton = document.getElementById(i);
    const deletebutton = document.getElementById(i);
})

fromEvent(editbutton, "click").subscribe(() => {
    j = id;
    document.getElementById("Note"+j).innerHTML += ("<textarea id=\"EditArea\" name=\"EditArea\" rows=\"3\" cols=\"30\"> </textarea> <button onclick=\"SubmitEdit(EditArea, i)\">Submit edit</button>");
    const submitbutton = document.getElementById(i);
})

fromEvent(submitbutton, "click").subscribe(() => {
    let varofAdd = val.value;
    NotesArray[i] = varofAdd;
    document.getElementById("Note"+j).innerHTML = ("<div id = \"Note"+ i +"\" > <p>" + varofAdd + "</p> </div>");
})

fromEvent(deletebutton, "click").subscribe(() => {
    let DivNum = id;
    console.log(DivNum);
    document.getElementById("Div" + DivNum).innerHTML = " ";
})
EN

回答 1

Stack Overflow用户

发布于 2021-11-25 14:14:13

在应用程序启动时在变量中声明所有内容的RxJS。如果你动态地改变你的源监听器,你应该重新创建流。

例如:

代码语言:javascript
复制
const editbutton = new BehaviorSubject(yourInitHTMLButtonOrNull);

editbutton.pipe(switchMap(buttonElement => fromEvent(buttonElement, "click"))).subscribe(() => {...});

对于其他动态按钮也是如此。此外,您还应该将此按钮更改为Subject值:

代码语言:javascript
复制
fromEvent(button, "click").subscribe(() => {
    i++;
    j++;
    ...

    editbutton.next(document.getElementById(i));
    deletebutton.next(document.getElementById(i));
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70101431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档