Jquery Mobile动态创建范围变化事件不触发

Jquery Mobile dynamic created range change event not firing

本文关键字:事件 变化 范围 Mobile 动态 创建 Jquery      更新时间:2023-09-26

我正在用下面的代码创建一个Jquery Mobile动态范围:

$('<input data-type="' + elementType + '" id="' + name +' " min=' + value1 +' max=' + value2 + ' value="127" >').appendTo("fieldset");

现在我想用下面的代码添加一个更改事件:

$(".brightness").change(function() {
        alert("changed");
});

我不知道为什么它不工作,我试图在定义事件后刷新范围,我试图将事件绑定到范围,没有任何作用。包含第一个代码片段的函数首先被调用,包含第二个代码片段的函数首先被调用。

你们中有人知道我做错了什么,或者我忽略了什么吗?

您需要做两件事1. 添加css类brightness到你的范围输入

$('<input class="brightness" data-type="' + elementType + '" id="' + name +' " min=' + value1 +' max=' + value2 + ' value="127" >').appendTo("fieldset");
  • 使用on添加事件处理程序
  • $(document).on("change",".brightness",function() { alert("changed"); });

    EDIT -对于id选择器使用#而不是.(点),如下所示$(document).on("change","#brightness",function() { alert("changed"); });

    检查jQuery选择器

    为动态创建的元素使用on方法

    $(".brightness").on('change',function() {
            alert("changed");
    });
    

    我认为你是给id亮度和调用Onchange事件类使用点(.)。

    如果id的名称是亮度则你应该使用#

     $("#brightness").on('change',function() {
            alert("changed");
    });
    

    但是如果你想通过类调用onchange事件,那么你需要在输入中添加类并使用点(.)

    $('<input class="brightness" data-type="' + elementType + '" id="' + name +' " min=' + value1 +' max=' + value2 + ' value="127" >').appendTo("fieldset");
    $(".brightness").on('change',function() {
        alert("changed");
    });