想象在头一个正常页主叫javscript。麻烦的是一些内容的心不是加载,直到我点击一个链接。随后,当这个链接加载内容它不会工作。这是因为我想的JavaScript已经运行,并为此犯规重视本身就是对这些呼吁以后的元素。只存在标准的HTML被调用。

因此,例如,这是我的调用外部HTML的代码。

$.get('content.inc.php', {id:id}, function(data){
        $('#feature').children().fadeTo('fast', 0).parent().slideUp('slow', function(){
           $(this).html(data).slideDown('slow');
        });
    });

如果我打电话例如和H1标签的HTML已经在页面中的Cufón会工作。但是因为我加载通过上述方法H1标签的内容不会与我所拣选font.This改变仅仅是一个例子。这同样适用于任何的JavaScript。

我wonering是否有办法解决,而不当从上面的功能接收它的调用的JavaScript以及在HTML

有帮助吗?

解决方案

Cufon.refresh() 你想要做什么?

至于你说的Cufon是的只是一个例子的,我也建议更一般的:

$.get(url, options, function(html, status) {
    var dom = $(html);
    // call your function to manipulate the new elements and attach
    // event handlers etc:
    enhance(dom);

    // insert DOM into page and animate:
    dom.hide();
    $target_element.append(dom); // <-- append/prepend/replace whatever.
    dom.show(); // <-- replace with custom animation
});

其他提示

如果您想将事件附加到元素动态创建的页面上看看“活”的关键字。

$('H1').live("click", function() { alert('it works!'); });

希望这是你所期待的。

您可以将事件处理程序,你通过get()得到的回调函数里面的数据。例如

$.get('content.inc.php', {id:id}, function(data){
    $('#feature').children().fadeTo('fast', 0).parent().slideUp('slow', function(){        
        $(this).html(data).find('a').click(function(e) {
            // specify an event handler for <a> elements in returned data
        }).end().slideDown('slow');
    });
});

live()也可能是你的选择,这取决于你希望绑定到什么事件(因为live()使用事件代表团的不是所有的事件都支持)。

安迪尝试。它将调用的Cufón代码每个AJAX请求完成之前的HTML被实际添加到页面之后。

$.get('content.inc.php', {id:id}, function(data){
    $('#feature').children().fadeTo('fast', 0).parent().slideUp('slow', function(){
        $(this).html(data);
        Cufon.replace('h1');
        $(this).slideDown('slow');
    });
});

JavaScript不是因为OR beccause jQuery是这个元素的innerHTML只设置一些文本,如果它含有(其不被解释为一个JavScript)的安全性的原因执行。因此,安全性是旁的效果。

如何解决呢?

试图找到你的所有响应SCRIPT标签,并执行它们作为休耕:

var scripts = myelement.getElementsByTagName("SCRIPT");
var i = 0;

for (i = 0; i < scripts.length; i++)
   eval(scripts[i].innerHTML);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top