input 使用js賦值而非手動輸入input,並執行input事件對應函數

背景:在開發過程當中須要用到layui的下拉列表,且須要在隱藏輸入框的時候保持輸入搜索功能,所以須要使用js賦值給input並調用input事件對應的函數javascript

經試驗,因爲做用域的不一樣,在layui源碼中定義監聽input的input,change,propertychange,blur事件,在comment.js中激發該input的這些事件並不會觸發執行對應的函數,所以轉而研究數據的雙向綁定原理,使用封裝屬性訪問器實現這一功能java

var jsinput = undefined;  
Object.defineProperty(input[0], 'jsinput', {  
   get: function() {  
     return input[0].value;  
   },  
   set: function(value) {  
     input[0].value=jsnput = value; 
    var mmm=function(v){ console.log(v); }
     mmm(value);
   }  
 });  

當執行input.prop("jsinput","aaa")時,會執行mmm函數,輸出aaa函數

相關文章
相關標籤/搜索