可以使用.load()拉入jQuery锚类元素吗?

时间:2014-06-20 19:40:22

标签: jquery

我正在使用.load()将文字从一个页面引入另一个页面。我正在“加载”的一个特殊div具有由锚类触发的模态。但是,该锚类在“加载”后不起作用。有没有办法解决?

我在这里发布了一个简单的例子:http://temp.kissr.com/

您可以看到点击时没有任何反应。但是,这是从http://temp.kissr.com/div_being_loaded.html

中提取绿框和随附警报的页面

查看这些页面上的源代码以检查我的.load()方法。我的方法也发布在这里:

<script>
    $(function() {
        $('#grab_div').load('div_being_loaded.html .load');
    }); 
</script>

<div id="grab_div"></div>

这是从单独的页面(div_being_loaded.html)加载的div,但位于同一根级别。

<div class="load">
    <a class="alert">Click for Alert</a>
</div>

<script>
    $("a.alert").on("click", function() {
        alert( "Success" );
    });
</script>

感谢您一起来看看!

2 个答案:

答案 0 :(得分:1)

替换:

$('#grab_div').load('div_being_loaded.html .load');

$('#grab_div').load('div_being_loaded.html');

(或者您已将整个script块放在<div class="load">内。)

通过添加.load(来自<div class="load">)类,您只需加载HTML的那一位而不是script块。

答案 1 :(得分:1)

您的点击事件绑定是在DOM内部存在内容之前进行的。你有2个解决方案。

1)您可以等待加载内容:

$(function() {
    $('#grab_div').load('div_being_loaded.html .load', function(){
        $("a.alert").on("click", function() {
            alert( "Success" );
        });
    });
}); 

2)或者您可以使用事件委派:

$("#grab_div").on("click", 'a.alert', function() {
    alert( "Success" );
});