0

如果我希望在主页完成加载后能够加载内容(包含取决于 jQuery 的元素),则将从我网站上的另一个页面(div)中检索内容。然后如何根据 jQuery 获取这些元素来执行(工作)?

在将这些不同的 jQuery 元素加载到主页后,如何使用一些简单的方法使它们工作?我对 jQuery 了解不多,如果我可以在脚本上添加/编辑一个函数以使它们在加载后工作,那就太好了,但它可能比这更困难。在过去的日子里,我尝试初始化加载的不同对象,但注意到复杂的脚本非常困难。

页面加载这样的新内容(选择框):

<select id="selectbox"> 
<option>1</option>
</select>

选择框的 jQuery 代码:

$(document).ready(function(){ 
$("#selectbox").change(function(){ 
var selectedOption = $('#selectbox :selected').val(); 
$containerDiv = $('#div_that_will_get_content'); 
$containerDiv.html("");
        switch (selectedOption)
        {
        case "1":$containerDiv.load( "Page.html #div1 );break;
        }
return true;
}); 
});

选择框 (1) 中的选定选项从 Page.html #div1 收集数据,然后将数据发送到 div "#div_that_will_get_content"。因此,在主页完成加载后会加载 div。

现在,如果我想在这个 div 中放置一个 jQuery 元素,然后通过选择框将该 div 加载到主页中并加载到“#div_that_will_get_content”,这些元素不起作用。任何人都可以展示一个简单的 jQuery 示例,并简要说明脚本是如何从一开始就编写的,以及在加载后您进行了哪些更改以使其工作?

谢谢。

4

1 回答 1

2

不完全确定您需要什么,但部分答案在于使用成功回调load()

/* define this cached elemn outside change handler so don't have to search DOM each time*/
$containerDiv = $('#div_that_will_get_content');

$("#selectbox").change(function() {
    /* val() of select is same as searching for selected option val() but less code*/
    var url = 'Page.html #div' + $(this).val();
    $containerDiv.load(url, function() { 
         /* new ajax loaded html exists you can run code here*/
        $containerDiv.find('#someOtherDiv').doSomething()
    })

});

API 参考:http ://api.jquery.com/load/

如果您的问题与将事件绑定到将来随时加载的元素(例如单击处理程序)有关,您可以在页面加载脚本中使用on()

$(document).on('click', '.className', function(){
     doSomething();
})
于 2012-12-22T21:53:23.923 回答