Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问DOM动态添加、getScript、ajax_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 访问DOM动态添加、getScript、ajax

Javascript 访问DOM动态添加、getScript、ajax,javascript,jquery,ajax,Javascript,Jquery,Ajax,我使用jQueryAjax动态读取页面上的上下文。但DOM的一部分是由ajax.done中的getScript在javaScript函数调用中加载的。但在加载新内容之后,我需要按类获取元素,并在下一个函数中使用它。不幸的是,我找不到在javaScript函数中创建的元素,也找不到使用jQuery getScript调用该函数的脚本 好的,我的代码: $(document).ready(function() { $('.link').click(function(){ var

我使用jQueryAjax动态读取页面上的上下文。但DOM的一部分是由ajax.done中的getScript在javaScript函数调用中加载的。但在加载新内容之后,我需要按类获取元素,并在下一个函数中使用它。不幸的是,我找不到在javaScript函数中创建的元素,也找不到使用jQuery getScript调用该函数的脚本

好的,我的代码:

$(document).ready(function() {
    $('.link').click(function(){
      var subpage = $(this).attr('data-subpage');
      var src = 'subpages/'+ subpage + '/' + subpage +'.php';
      var script = 'subpages/'+ subpage + '/js/' + subpage +'.js';

      $.ajax({
          url: src,
          context: document.body,
          dataType: 'html',
          success: function(responseText){
              $('#text').html(responseText); // responseText has only container <div id="insideText"></div> that I use in one function and load there by html() several divs. One of this div has class 'translate'. I need it in function Translator
            }
      })
        .done(function(){
          $.getScript(script); // here I call script where I load several divs to #insideText
          Translator($('.active').attr('data-lang')).getTranslation() // part of function have to find all div.translate, but can't find it if they're load in script call in getScript. And this is a problem.
        })
    })
  })
$(文档).ready(函数(){
$('.link')。单击(函数(){
var subpage=$(this.attr('data-subpage');
var src='subpage/'+subpage+'/'+subpage+'.php';
变量脚本='subpage/'+subpage+'/js/'+subpage+'.js';
$.ajax({
网址:src,
上下文:document.body,
数据类型:“html”,
成功:函数(responseText){
$('#text').html(responseText);//responseText只有一个容器,我在一个函数中使用它,并通过html()几个div加载到那里。这个div中的一个有类“translate”。我需要在函数转换器中使用它
}
})
.done(函数(){
$.getScript(script);//这里我调用script,将几个div加载到#insideText
Translator($('.active').attr('data-lang')).getTranslation()//函数的一部分必须查找所有div.translate,但如果它们在getScript的脚本调用中加载,则无法找到。这是一个问题。
})
})
})
我希望,我把我的问题解释得很清楚。如果没有,请问,我会再试一次

有办法吗

//更新//

在这个脚本之后,getScript调用我仍然对第二个“完成”有问题:

  const Presenter = function(){
    var presented, show, fullDesc, cont;

    presented = [
      {
      url: 'demo/colorsGame/',
      name: 'Graj w kolorki!',
      desc: 'Graj w kolorki! Wybierz taki sam kolor, w jakim napisana jest nazwa wylosowanego koloru. Spiesz się, czas ucieka coraz szybciej i szybciej. Uważaj, bo mózg może cię oszukać i uznać za ważniejsze to, co jest napisane, a nie to co widzisz. Zobacz ile punktów jesteś w stanie zdobyć zanim popełnisz trzy błędy. Ćwicz swoją koncentrację.'
    },
    {
      url: 'demo/sampleUserProfile/',
      name: 'Sample User Profil',
      desc: 'Mała próbka możliwości reactJS. Wkonany z użyciem biblioteki reactJS, menadzera pakietów webpack oraz na środowisku nodeJS przykładowy profil użytkownika. Like-uj i obserwuj do woli, a jeśli chcesz, wypowiedz się pod profilem.'
    }
  ];

    show = function(url, desc, name) {
      fullDesc =
        "<a href ='" + url + "'>" +
          "<h1 class='translate'>" + name + "</h1>" +
        "</a>" +
        "<div>" +
          "<p class='translate'>" + desc + "</p>" +
        "</div>";

      cont =
        "<div id='webmin' class='clearfix'>" +
          "<div>" +
            fullDesc +
          "</div>" +
          "<div>" +
            "<iframe src='" + url + "' scrolling='no'>" +
              "ups, twoja przeglądarka nie obsługuje ramek" +
            "</iframe>" +
          "</div>"+
        "</div>";

      return cont;
    };

    return {
      show: show,
      presented: presented
    }
  };

  display = function(){
    var len, url, name, desc;

    len = Presenter().presented.length;

    for(let i = 0; i <= len; i++){
      url = Presenter().presented[i].url;
      name = Presenter().presented[i].name;
      desc = Presenter().presented[i].desc;

      $('#insidetext.apps').append(Presenter().show(url, desc, name));
    }
  };
  display();
const Presenter=function(){
var呈现、显示、完整描述、续;
提出=[
{
url:“demo/colorsGame/”,
姓名:“Graj w kolorki!”,
描述:“Graj w kolorki!Wybierz taki sam kolor,w jakim napisana jest nazwa Wylosowango koloru.Spiez się,czas ucieka coraz szybciej i szybciej.Uważaj,bo mżzg mo zukaći uznaćza Niezze to,co jest napisane,co.Zobacz ile punktów jestśyžyžconzyžzyžzyžzyžzyžzyžzyžzyžzyžzyžzyžzy38特雷克什。”
},
{
url:'demo/sampleUserProfile/',
名称:“示例用户profile”,
描述:“Mała próbka możliwości reactJS.Wkonany z użyciem biblioteki reactJS,menadzera pakietów网页包oraz naśrodowisku nodeJS przykładowy profil użkownika.像uj i obserwuj do woli一样,一个jeśli chcesz,wypowiedz siępod profilem。”
}
];
show=函数(url、描述、名称){
全称=
"" +
"" +
“

”+desc+“

”+ ""; 续= "" + "" + 全称+ "" + "" + "" + “联合包裹公司,twoja przeglądarka nie obsługuje ramek”+ "" + ""+ ""; 返回控制; }; 返回{ 秀:秀,, 赠送:赠送 } }; 显示=函数(){ 变量len、url、名称、描述; len=Presenter().presented.length;
for(让i=0;i
getScript
只是另一个ajax调用,返回一个xhr对象,该对象公开了done和fail方法。在尝试访问dom之前,请使用这些方法确保正确加载dom

$(document).ready(function() {
    $('.link').click(function(){
      var subpage = $(this).attr('data-subpage');
      var src = 'subpages/'+ subpage + '/' + subpage +'.php';
      var script = 'subpages/'+ subpage + '/js/' + subpage +'.js';

      $.ajax({
          url: src,
          context: document.body,
          dataType: 'html'
      })
        .done(function(responseText){
             $('#text').html(responseText); 
             $.getScript(script).done(function() {
                 Translator($('.active').attr('data-lang')).getTranslation() ;
             }
        })
    })
})

此外,您还应该实现.fail方法,以防ajax请求失败。

getScript只是另一个ajax调用,返回一个xhr对象,该对象公开了done和fail方法。在尝试访问dom之前,请使用这些方法确保正确加载dom。不幸的是,它什么也不提供。第二个“done”中的内容不需要调用。即使我尝试一下console.log(“测试”),我不明白。啊,我知道为什么。这是因为你提供了一个成功参数,还附加了一个完成方法。使用其中一个或另一个。更新answershmm,问题似乎出在script.js上。我有几个脚本。现在加载它们中的大部分都没有问题,第二个“完成”效果很好。但是现在有一个脚本。所以,我更新了我的问题,我在这个脚本中使用iframe,可能这是一个问题。。。