Javascript 从视图加载外部脚本时,加载外部脚本时出现问题

Javascript 从视图加载外部脚本时,加载外部脚本时出现问题,javascript,jquery,Javascript,Jquery,脚本最初位于我的EJS视图中,夹在一些漂亮的脚本标记之间。我将它移动到一个外部文件,最初它根本不起作用,我的点击侦听器什么也没做。然后我将它向下移动到页面底部,就在body标签的正外部,这使得它有时可以工作,当它工作时,速度比以前慢了很多。这是我第一次使用pageinit而不是document.ready,我假设这就是为什么我无法找出我的问题所在。这是代码。谢谢你的帮助 var currentList; var elementID; var id; $('#mowingmaster').on(

脚本最初位于我的EJS视图中,夹在一些漂亮的脚本标记之间。我将它移动到一个外部文件,最初它根本不起作用,我的点击侦听器什么也没做。然后我将它向下移动到页面底部,就在body标签的正外部,这使得它有时可以工作,当它工作时,速度比以前慢了很多。这是我第一次使用pageinit而不是document.ready,我假设这就是为什么我无法找出我的问题所在。这是代码。谢谢你的帮助

var currentList;
var elementID;
var id;

$('#mowingmaster').on('pageinit', function (event) {

    $('li').each(function (index) {

        var elementID = $(this).attr('id');
        elementID = '#' + elementID;

        $(function () {
            $(elementID).click(function (event) {

                var elementID = $(this).attr('id');
                id = elementID;
                elementID = '#' + elementID;

                setElementID(id);
                $.mobile.changePage("#dailylist");
            });
        });
    });

    $("#dailylist").on("pagebeforeshow", function (event, ui) {
        $("#testhide").hide()
        setCurrentList(elementID);
    });

    $("#dailylist").on("pageshow", function (event, ui) {

    });
});

function setElementID(id) {
    id = id;
}

function setCurrentList() {

    var currentList = id;

    $.ajax({
        type: "POST",
        url: "/scape/mowinglist",
        data: {
            currentList: currentList
        },
        success: function (data) {

        }
    });
};
这是我第一次使用pageinit而不是document.ready

$('#mowingmaster').on('pageinit', function (event) {
要使其工作,运行该代码段时,元素
#mowingmaster
必须已经存在–如果不存在,选择器将不返回任何内容,因此在
打开时没有任何内容可以绑定事件

document.ready的使用方式有所不同–您通常使用document.ready在文档准备就绪时开始执行代码,然后将事件绑定到该代码中

请看:


它们将此事件绑定到此处的
文档
,并为应该使用的元素提供选择器(
#aboutPage
)——这也是您应该使用它的方式。(
document
从一开始就“始终”可用,而DOM元素在脚本执行时可能不存在。)

好的,这是基于行为的。那么,我使用的所有涉及Jquery的脚本都应该以document.ready开头,这要看情况而定;如果您不需要pageinit提供的“额外”功能,那么您可以继续使用document.ready。但是,您也可以按所示的方式使用pageinit,无论您的脚本嵌入到何处,它都可以工作。
$( document ).on( "pageinit", "#aboutPage", function( event ) {