jQuery元素的容器层次结构访问

时间:2013-04-21 14:33:44

标签: javascript ajax jquery-mobile

物理页面上的JQM元素:

#page_test1
    button changing page to #page_test2

#page_test2
    div #place to put something programmatically

将按钮放在#place容器中我编写了以下(工作)代码:

$(document).on('pagebeforeshow', '#page_test2', function(event) {
    $('#place').empty();
    $('#place').append('<a href="#" data-role="button" data-theme="d">Dynamic button inserted by JavaScript</a>');
    $('#place').trigger('create');
});

好的,但是当我尝试将.on主体移动到脚本级别(直接在脚本标记下)时,由于上下文松散,内部代码变得错误:

$(document).on('pagebeforeshow', '#page_test2', function(event) {
    addButton(); // Attempt to move widget manipulation up
});

// Widget manipulation not changed but moved outside (level up) .on
// Not working
function addButton() {
    $('#place').empty();
    $('#place').append('<a href="#" data-role="button" data-theme="d">Dynamic button inserted by JavaScript</a>');
    $('#place').trigger('create');
}

如何从不同级别的JQM层次结构及其外部访问JQM元素?

猜猜这是JQM / Ajax的基础,所以我非常感谢将URL与常用信息一起使用。

1 个答案:

答案 0 :(得分:1)

要通过目标页面外的代码动态访问,请使用以下命令:

$(document).on(event, '.selector', function() { });

要通过目标页面内的代码动态访问,请使用以下命令:

$('.selector').on(event, function() { });