请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

回傳undefined

<body>
    <input type="text" id="input">
    <br>
    <br>
    <span id="display"></span>
</body>
<script>
    var obj = {
        name: "1",
    }

    Object.defineProperty(obj, "context", {
        set: function (val) {
            document.getElementById("display").innerText = val
            document.getElementById("input").value = val
        }
    })

    document.getElementById("input").addEventListener("keyup", function (event) {
        obj.context = event.target.value;
    })

雖然用console更改obj.context的val後,input.value會改變,當改變input的輸入123時,用console去看obj.context的時後回傳的是undefined,為何不是123呢?

想知道為什麼呢?這樣可以算是雙向數據綁定嗎?

(可參考下面gif的動圖描述)

正在回答 回答被采纳积分+3

1回答

河畔一角 2018-10-14 21:32:43

这个最好在里面调试一下,看看输入之后,绑定事件里面,event.target.value获取是不是文本框的值,然后测试一下obj.context,建议赋值给val不要叫context

0 回复 有任何疑惑可以回复我~
  • 提问者 NissenYeah #1
    event.target.value確定是文本框的值,obj.context也改成了,但是依然是undefined
    回复 有任何疑惑可以回复我~ 2018-10-15 20:20:57
  • 提问者 NissenYeah #2
    我認為有可能是 set: function (val) {
              
            } return 了 undefined
    回复 有任何疑惑可以回复我~ 2018-10-15 20:33:02
  • 提问者 NissenYeah #3
    嘗試在set裡面寫 return val 但還是沒用
    回复 有任何疑惑可以回复我~ 2018-10-15 20:35:05
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信