【问题标题】:Slider value changes on slide but not on click滑块值在幻灯片上更改,但在单击时不更改
【发布时间】:2016-06-07 18:33:32
【问题描述】:

我在 Wordpress 网站上有一个滑块,它是自定义代码而不是插件。当我滑动滑块时,值会发生变化,但是当我单击时,什么也没有发生。我希望滑块在滑动或单击时工作。

代码如下:

jQuery("#ex1").slider();
jQuery("#ex1").on("slide", function(slideEvt) {
    var pret = jQuery("#pret").val();
    var mois = slideEvt.value;
    var final = 0
    var annee = 0
    var nbmois = 0
    var pretlong = false

    if(mois>12){
        nbmois = mois%12
        final = pret*1.039
        annee = mois/12
        annee = Math.floor(annee)
        pretlong = true
        console.log(annee)
    }else
        final=pret

    final = final / mois
    console.log(pret)
    console.log(mois)
    console.log(final)

    if(pretlong)
        jQuery("#mois").text(mois+" mois (soit "+annee+" an(s) et "+nbmois+" mois)");
    else
        jQuery("#mois").text(mois+" mois");

    jQuery("#montant").text(final.toFixed(2) + "€ TTC sur "+mois+" mois");
});

如果您能帮助我,我将不胜感激。这是它出现的链接。 http://www.smf-services.fr/habitat/simulateur-financement/

【问题讨论】:

  • 顺便说一下库是Bootstrap滑块。
  • 可以提供图书馆的链接吗?
  • 这里是github.com/seiyria/bootstrap-slider,感谢您的帮助!
  • 尝试将jQuery("#ex1").on("slide", ...更改为jQuery("#ex1").on("change",
  • 我试过了,但效果不太好,相反,我使用了这个:var slide = jQuery("#ex1").slider(); jQuery("#ex1").on("change", function(slideEvt) { var pret = jQuery("#pret").val(); var mois = slide.slider("getValue");

标签: javascript jquery slider


【解决方案1】:

没有任何官方方法可以做到这一点[至少我还没有找到]恕我直言。但是,您可以使用插件的 change event 并将更新代码移动到单独的 function,在其中将值传递给 update 并在 change 上调用函数和slide 事件。 change 事件将有一个参数,其 value 属性为 object。该对象包含old valuenew value,您可以使用它们。考虑下面的例子。

jQuery("#ex1").on("slide", function(slideEvt) {
    //moved code from here into a separate function below named updateValue
    //which accepts value as parameter
    updateValue(slideEvt.value);//call the function
}).on('change', function(val) {
    //val parameter above has value object which contains newValue 
    updateValue(val.value.newValue);
});

function updateValue(value) {
    var pret = jQuery("#pret").val();
    var mois = value;
    var final = 0
    var annee = 0
    var nbmois = 0
    var pretlong = false
    if (mois > 12) {
        nbmois = mois % 12
        final = pret * 1.039
        annee = mois / 12
        annee = Math.floor(annee)
        pretlong = true
    } else
        final = pret
    final = final / mois
    if (pretlong)
        jQuery("#mois").text(mois + " mois (soit " + annee + " an(s) et " + nbmois + " mois)");
    else
        jQuery("#mois").text(mois + " mois");

    jQuery("#montant").text(final.toFixed(2) + "€ TTC sur " + mois + " mois");

}

DEMO HERE

【讨论】:

    猜你喜欢
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2013-11-19
    • 1970-01-01
    相关资源
    最近更新 更多