如何通过javascript重新为附加标签应用js和css文件

时间:2018-07-06 08:52:53

标签: javascript html css

我正在尝试创建无限分页。我正在使用ajax向控制器发送最后一个元素的ID。然后,控制器将返回由html标签组成的响应。

当我尝试将其追加到div中时,javascript和css文件不适用于新添加的html标签。我已经在网站上扫描了一些问题,但是找不到针对我问题的任何解决方案。 你能帮忙吗?

脚本:

<script type="text/javascript">
  $(document).ready(function() {
    var counting = 1;
    $(document).on('click', '.pagination-button', function() {
      var id = $('.projects:last').data('id');
      $.ajax({
        url: '/projects/projectloader/',
        type: "post",
        beforeSend: function() {
          if (counting > 0)
            $('.ajax-load').show();
          $('.mobile-product-loader').hide();
        },
        data: {
          id: id,
        },
        success: function(data) {
          if (data) {
            $('.ajax-load').hide();
            $(".cbp-wrapper").append(data);
            $('.mobile-product-loader').show();
            counting++;
            console.log(data);
          } else if (!data) {
            $('.ajax-load').hide();
            $('.mobile-product-loader').hide();
            console.log('no data');
          }
        }
      });
    });
  });
</script>

2 个答案:

答案 0 :(得分:0)

您也许可以尝试这样的事情:

    function loadjscssfile(filename, filetype){
    if (filetype=="js"){ //if filename is a external JavaScript file
        var fileref=document.createElement('script')
        fileref.setAttribute("type","text/javascript")
        fileref.setAttribute("src", filename)
    }
    else if (filetype=="css"){ //if filename is an external CSS file
        var fileref=document.createElement("link")
        fileref.setAttribute("rel", "stylesheet")
        fileref.setAttribute("type", "text/css")
        fileref.setAttribute("href", filename)
    }
    if (typeof fileref!="undefined")
        document.getElementsByTagName("head")[0].appendChild(fileref)
}

loadjscssfile("myscript.js", "js") //dynamically load and add this .js file
loadjscssfile("javascript.php", "js") //dynamically load "javascript.php" as a JavaScript file
loadjscssfile("mystyle.css", "css") ////dynamically load and add this .css file

答案 1 :(得分:0)

如果您需要将事件应用于动态生成的内容,请考虑使用事件委托来重构事件语法(在主要js文件中),例如:

$(document).on("click", '.mylink', function(event) { 
    alert("new link clicked!");
});

Imho最好的选择是支持动态生成的内容中的事件。