在启动时应该使用哪个JQuery事件来调用函数ONCE?

时间:2018-01-11 19:59:38

标签: javascript jquery html jquery-ui javascript-events

我有一个滑块可以设置电机速度" oninput"它运作良好。

<script type="text/javascript"> 

    var sliderAZ = document.getElementById("AZRange");
    var sliderEL = document.getElementById("ELRange");
    var outputAZ = document.getElementById("demoAZ");
    var outputEL = document.getElementById("demoEL");
    outputAZ.innerHTML = sliderAZ.value;
    outputEL.innerHTML = sliderEL.value;

    sliderAZ.oninput = function() {
        outputAZ.innerHTML = this.value;
        AzimuthSpeed();
    }

    sliderEL.oninput = function() {
        outputEL.innerHTML = this.value;
        ElevationSpeed();
    }

</script>

问题是我必须单击滑块(在GUI中)才能获得速度的初始输入。我希望加载速度值(并随后使用JSON发送到电机驱动程序),就像它用于oninput事件一样。

我已经尝试过.ready文件了。

$(document).ready( function() {
        AzimuthSpeed();              
        ElevationSpeed(); 

这会使程序挂起并且速度值不会显示在网页上。我猜它甚至没有发送速度的默认值?

我也试过使用&#34;一个&#34;在文档准备就绪时发送一次初始值的事件:

$(document).one( "ready", function() {
        AzimuthSpeed();              
        ElevationSpeed(); 

那也没有用。这是滑块HTML代码:

<td>
    <div class="slidecontainer">
        <input type="range" min="2" max="150" value="30" class="slider" id="AZRange">
        <p>Speed: <span id="demoAZ"></span></p>
    </div>
</td>

使用套接字将速度发送给驱动程序:

// Send speed indicated on range slider for Azimuth motor
    function AzimuthSpeed()     { socket_mc.send("AZspeed" + sliderAZ.value); }
// Send speed indicated on range slider for Elevation motor
    function ElevationSpeed()   { socket_mc.send("ELspeed" + sliderEL.value); }

使用顶部代码的滑块设置速度。

您建议将速度设置为30的初始值? 感谢您的投入!

1 个答案:

答案 0 :(得分:0)

假设oninput处理程序正在运行。在更新ElevationSpeed();的{​​{1}}后,您可以致电innerHTML,以便用户实际看到该标记的值...稍后您的滑块会更新。

span

现在你只想要一个&#34;初始&#34;设置为负载?
请参阅下面的评论,代码。

<input type="range" min="2" max="150" value="30" class="slider" id="AZRange">

现在,该功能必须在该呼叫之前存在......这就是全部。