Jquery 当我执行“添加到主页”时,js触发器(创建)不起作用

Jquery 当我执行“添加到主页”时,js触发器(创建)不起作用,jquery,triggers,safari,Jquery,Triggers,Safari,我编写的脚本如下: $("#last").bind("change", function() { var myselect = document.getElementsByTagName("select"); var numselect = myselect.length; var oldid = "select-" + numselect; var newidslider = "slider-" + (numselect + 1); $('#last')

我编写的脚本如下:

$("#last").bind("change", function() {
    var myselect = document.getElementsByTagName("select");
    var numselect = myselect.length;
    var oldid = "select-" + numselect;
    var newidslider = "slider-" + (numselect + 1);
    $('#last').attr('name', oldid);
    $('#last').attr('id', oldid);
    $('#last').selectmenu("refresh", true);
    $('#selects').append('<label for="last" class="select">scegli personaggio:</label><select name="last" id="last"><option value="pippo">pippo</option><option value="pluto">pluto</option><option value="paperino">paperino</option><option value="topolino">topolino</option></select><div class="spazio"></div><input type="range" name="' + newidslider + '" id="' + newidslider + '" value="50" min="0" max="100"/>').trigger('create');
});
当我使用safari移动应用程序或chrome移动应用程序时,它工作正常,但当我在主屏幕上添加js后访问我的网站时,js不工作! 任何人都知道这个问题!我陷入了这种境地! 谢谢大家的关注

委派该事件

应该是

$("body").on("change" ,"#last" , function() {
当事件处理程序关联时,该元素在DOM中不可用。。将事件委派给静态父级可以解决您的问题。

委派事件

应该是

$("body").on("change" ,"#last" , function() {

当事件处理程序关联时,该元素在DOM中不可用。。将事件委托给静态家长应该可以解决您的问题。

我不确定是否与移动或添加到主屏幕有关,但代码中有几行可能会导致问题。我只是在读代码,我还没有运行它,所以我可能是错的

$('#last').selectmenu("refresh", true);
这将找不到任何要操作的元素,因为前一行更改了项目的ID,因此它不再是最后一行

$('#selects').append(.....

正在创建一个ID为last的新元素,但如果希望它也获得onChange函数,则必须再次附加它。最初的绑定调用仅对运行时最后一个ID为的项目进行操作。

我不确定是否与mobile或add to homescreen有关,但代码中有几行可能会导致问题。我只是在读代码,我还没有运行它,所以我可能是错的

$('#last').selectmenu("refresh", true);
这将找不到任何要操作的元素,因为前一行更改了项目的ID,因此它不再是最后一行

$('#selects').append(.....

正在创建一个ID为last的新元素,但如果希望它也获得onChange函数,则必须再次附加它。最初的绑定调用只对运行时最后一个ID为的项进行操作。

我发现问题出在哪里,但我不知道如何解决。脚本所在的页面由另一个页面(即我的主页)访问。当我带着firebug从我的主页转到那里时,我看到我的脚本代码没有出现在页面中。但如果我用浏览器按钮刷新页面,脚本代码神奇地出现在html页面的行中,并且一切正常。为什么会有这种行为?脚本是如何包含在第二页而不是主页中的?你可以发布代码或链接到页面本身吗?你是对的,脚本必须也在上一页中!抱歉,我是js:9的新手,我已经找到了问题所在,但我不知道如何解决。脚本所在的页面由另一个页面(即我的主页)访问。当我带着firebug从我的主页转到那里时,我看到我的脚本代码没有出现在页面中。但如果我用浏览器按钮刷新页面,脚本代码神奇地出现在html页面的行中,并且一切正常。为什么会有这种行为?脚本是如何包含在第二页而不是主页中的?你可以发布代码或链接到页面本身吗?你是对的,脚本必须也在上一页中!抱歉,我是js:9的新手,我已经找到了问题所在,但我不知道如何解决。脚本所在的页面由另一个页面(即我的主页)访问。当我带着firebug从我的主页转到那里时,我看到我的脚本代码没有出现在页面中。但如果我用浏览器按钮刷新页面,脚本代码神奇地出现在html页面的行中,并且一切正常。为什么会有这种行为?我发现问题出在哪里,但我不知道如何解决。脚本所在的页面由另一个页面(即我的主页)访问。当我带着firebug从我的主页转到那里时,我看到我的脚本代码没有出现在页面中。但如果我用浏览器按钮刷新页面,脚本代码神奇地出现在html页面的行中,并且一切正常。为什么会有这种行为??