簡體   English   中英

是否可以將JavaScript注入使用ajax調用后加載的dom?

[英]Can it possible injecting javascript to dom which is loaded after using ajax call?

我有一個ID為#id1div ,其中包含鏈接。 每當我單擊鏈接時,我都會進行一次AJAX調用,該調用還會從服務器返回其他鏈接。

現在,我正在使用JQuery replaceWith()方法在#id1中用新鏈接替換舊鏈接。 這樣,我維護了divid#id1

我要在此處實現的目標是,通過使用#id1單擊div上那些新占用的鏈接,並連續不斷地從服務器中獲取另一束鏈接。

是否可以編寫這樣的腳本?

<div id = "id1">
<ul>
<li><a href ="test/show/1">link1</a></li>
<li><a href ="test/show/2">link1</a>link2</li>
....
</ul>
</div>
 <script> 
  $('#id1 a').on(click, function(){
     $.ajax({
            url: '/test/test_now?page=' + page,
            dataType: 'json',
            success: function(response) {
                   $('#id1').repalceWith(response.links);
            },
            error: function() {

                alert('An error occurred');
            }
        });</pre>

正如Pointy所說的,我認為您需要更加具體,但是我認為這是模板工作,我最喜歡的模板之一(小尺寸)是Template7

您可以在html腳下的腳本標簽中創建模板,如下所示:

<script id="template" type="text/template7">
  <ul>
    {{#each links}}
    <li>
      <a href="{{url}}">{{text}}</a>
    </li>
    {{/each}}
  </ul>
</script>

然后使用jQuery或JS

var template = $('#template').html();

// compile it with Template7
var compiledTemplate = Template7.compile(template);

// Now we may render our compiled template by passing required context
var context = {
    links:[
        {text:'Text',url:'http://www.example.com'}
    ]
};

var html = compiledTemplate(context);
$('#id1').html( html );

您可以在任意位置添加上下文,每次接收新鏈接時,只需更新上下文並重復使用已編譯的模板,然后在“#id1” div中再次替換html別忘了包含Template7的js腳本文件在你的HTML

問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM