如何附加新的函数去javascript

how to attach new function go javascript

本文关键字:javascript 函数 何附加      更新时间:2023-09-26

我有这个脚本

<body>
    <input id='input' />
</body>
function addEvent(element, eventName, callback){
    if (element.addEventListener) {
        element.addEventListener(eventName, callback, false);
    } else if (element.attachEvent) {
        element.attachEvent("on" + eventName, callback);
    }          
}
function simas_slider(bodyObj){
    this.left = 0;
    addEvent(bodyObj,'mousemove',(function(slider){
        return function(e){
            slider.left = e.clientX;
        }
    })(this));
    this.onchange: ???
}
var slider = new simas_slider(document.body);
slider.onchange = function(currPoss){ // currposs is object slider left
    var input = document.getElementById('input');
    input.value = currPoss;
}

如何添加函数的变化对象simas_slider?所以我需要无论何时slider中的值被改变,input中的值也会被改变

function addEvent(element, eventName, callback) {
    if (element.addEventListener) {
        element.addEventListener(eventName, callback, false);
    } else if (element.attachEvent) {
        element.attachEvent("on" + eventName, callback);
    }
}
function simas_slider(bodyObj) {
    this.left = 0;
    this.onchange = function () {};
    addEvent(bodyObj, 'mousemove', (function (slider) {
        return function (e) {
            slider.left = e.clientX;
            slider.onchange(slider.left);
        }
    })(this));
}
var slider = new simas_slider(document.body);
slider.onchange = function (currPoss) {
    var input = document.getElementById('input');
    input.value = currPoss;
};

http://jsfiddle.net/tdwbw38p/1/

你几乎已经拥有了你需要的一切。您只需要在slider.left的值改变时调用onchange:

slider.left = e.clientX;
slider.onchange(slider.left);

或者如果你想要小心的话

slider.left = e.clientX;
if (typeof slider.onchange === 'function') {
    slider.onchange(slider.left);
}