Php 通过js按id显示div

Php 通过js按id显示div,php,javascript,html,Php,Javascript,Html,是否可以将此更改为显示稍后在文档中加载的元素: function tracksinfox_{$page_trackid}() { document.getElementById('tracksinfoxshow_{$page_trackid}').innerHTML = 'get stuff here'; } 在“get stuff here”的位置,我想按id显示一个div,但该div稍后将在页面加载中使用PHP创建。使用jQuery的on(),您可以向稍后添加到文档中的元素添加事件

是否可以将此更改为显示稍后在文档中加载的元素:

function tracksinfox_{$page_trackid}()
{
    document.getElementById('tracksinfoxshow_{$page_trackid}').innerHTML = 'get stuff here';
}

在“get stuff here”的位置,我想按id显示一个div,但该div稍后将在页面加载中使用PHP创建。

使用jQuery的on(),您可以向稍后添加到文档中的元素添加事件处理程序

您可以通过document.onreadystatechange使函数在文档准备就绪后执行:

document.onreadystatechange=function() { 
    if(document.readyState == 'complete'){ 
        tracksinfox_{$page_trackid}();
    }
}
或者只是简单地使用window.onload事件

window.onload = tracksinfox_{$page_trackid};
但还有一件事你必须知道,如果你想在文档准备好后执行两个或更多的功能,你可以这样做:

run_after_document_ready( tracksinfox_{$page_trackid} );
run_after_document_ready( somethingelse );
run_after_document_ready( somethingelse2 );

function run_after_document_ready( callback ) {
    callback_saver = window.onload;
    window.onload = function (){
        if ( typeof callback_saver == "function" ){
            callback_saver();
        }
        callback();
    }
}
或者只使用jQuery

$(document).ready(tracksinfox_{$page_trackid});
$(document).ready(somethiselse);
$(document).ready(somethiselse2);

注意:window.onload与document.ready有一点不同,有关更多信息,您应该找到window.onload、document.onreadystatechange和jquery document ready的文档

使用jQuery并执行以下操作怎么样。它建立了一个回调方法,当一个带有
id=“info”
的新元素被添加到DOM中时,该方法将被调用,然后它添加了一个带有
id=“info”
的新DIV,从而执行回调函数。回调函数取消注册自身(因此只调用一次),然后根据新的DIV设置
updateme
DIV的文本

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    </head>
    <body>
        <div id="update-me">I will be updated.</div>

        <script language="javascript">
        jQuery(function ($) {

            $("body").on("DOMNodeInserted", "#info", function(e){
                $("body").off("DOMNodeInserted", "#info");
                $("#update-me").text( $(e.target).text() );
            });

            $("body").append("<div id='info'>I have changed.</div>");                

        });
        </script>
    </body>
</html>

我会更新的。
jQuery(函数($){
$(“body”)。关于(“域节点插入”,“信息”,函数(e){
$(“body”).off(“DOMNodeInserted”,“#info”);
$(“#更新我”).text($(e.target.text());
});
$(“正文”)。追加(“我已更改”);
});
从1.7起,live()已被弃用。是的,live()已被弃用,但on()未被弃用。