Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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 jquery访问事件列表器内的全局变量';这';不使用_Javascript_Jquery_Event Listener - Fatal编程技术网

Javascript jquery访问事件列表器内的全局变量';这';不使用

Javascript jquery访问事件列表器内的全局变量';这';不使用,javascript,jquery,event-listener,Javascript,Jquery,Event Listener,我是初学者。我试图访问jquery事件列表器中的一个对象,但得到的不是未定义的就是TypeError。我尝试了几种方法,尝试以这种方式发送对象{results:result},但它不起作用,给了我未定义的错误。我找不到一个适合我的答案。 提前谢谢 Jquery完整代码 $(document).ready(function() { //var $addhere = $("#addhere"); $.ajax({ type: "GET", url: "/newsfeed/retrie

我是初学者。我试图访问jquery事件列表器中的一个对象,但得到的不是未定义的就是TypeError。我尝试了几种方法,尝试以这种方式发送对象{results:result},但它不起作用,给了我未定义的错误。我找不到一个适合我的答案。 提前谢谢

Jquery完整代码

$(document).ready(function() {
//var $addhere = $("#addhere");
$.ajax({
    type: "GET",
    url: "/newsfeed/retrieve",
    //datatype: "JSON",
    success: function(datas){
        //console.log(data);
        // Check the length of success data.data
        const data = datas;
        var datalength = Object.keys(data.data).length;
        // Calling the result function
        var count = 0;
        result(data, datalength);
        reactions(data, datalength, count);

    }
});

function result(result, datalength){
    // Values are here im result
    console.log(result);
    var myPostHtml = '';
    // Values in the first place of object array
    //console.log(result.data[0].uploads);
    for(i=0;i<datalength;i++)
    {
      //if(result.data[i].uploads.attr("src", "No files uploaded")){
        //$("img").hide();
      //}
        myPostHtml += `<img src="${result.data[i].uploads}" id="contentAreaHomePageTweetPhoto" alt="post-image" class="img-responsive post-image" />
        <div class="post-container">
          <img src="${result.data[i].uploads}" id="" alt="user" class="profile-photo-md pull-left" />
          <div class="post-detail">
            <div class="user-info">
              <h5><a href="/timeline" id="" class="profile-link">${result.data[i].username}</a> <!--<span class="following">following</span>--></h5>
              <p class="text-muted"id="contentAreaHomePageTime">${result.data[i].createdAt}</p>
            </div>
            <div class="reaction">
              <button class="btn text-green" id="contentAreaHomePageLikeButton${result.data[i]._id}"><i class="icon ion-thumbsup"></i>0</button>
              <button class="btn text-red" id="contentAreaHomePageUpdateButton${result.data[i]._id}"><i class="fa fa-pencil-square-o"></i></button>
              <button class="btn text-red" id="contentAreaHomePageDeleteButton${result.data[i]._id}"><i class="icon ion-android-delete"></i></button>
            </div>
            <div class="line-divider"></div>
            <div class="post-text">
              <p><i class="em em-anguished"></i> <i class="em em-anguished"></i> <i class="em em-anguished"></i></p>
            </div>
            <!--<div class="line-divider"></div>-->
            <div class="">
              <!--<img src="images/users/user-11.jpg" alt="" class="profile-photo-sm" />-->
              <p id="contentAreaHomePagePostText"><b><!--<a href="/timeline" class="profile-link"></a><i class="em em-laughing"></i>-->${result.data[i].post}</b></p>

            <!--</div>
            <div class="post-comment">
              <img src="images/users/user-4.jpg" alt="" class="profile-photo-sm" />
              <p><a href="/timeline" class="profile-link">John</a> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud </h5>
            </div>
            <div class="post-comment">
              <img src="images/users/user-1.jpg" alt="" class="profile-photo-sm" />
              <input type="text" class="form-control" placeholder="Post a comment">
            </div>-->
          </div>
        </div>
        </div>
        <div class="line-divider"></div>`

    };

    $(".post-content").append(myPostHtml);
};

function reactions(result, datalength, count){ 
  console.log("Entered inside", result, datalength);

for(i=0;i<datalength;i++){
    $('#contentAreaHomePageLikeButton'+result.data[i]._id).on('click', {results: result}, function(event){
      console.log("I am button",$(this), event.data.results.data[i]);
      var like = {
        id: event.data.results.data[i]._id
      }
      console.log("This is the like",like);
      //passdata = result.data.[i]_id;
      //$(this).html(count);
      $.ajax({
        url: "/newsfeed/update",
        type: "POST",
        datatype: "JSON",
        data: {id: result.data[i]._id},
        success: function(data){
          $("#contentAreaHomePageLikeButton"+result.data[i]._id).html(count++);

        }
       });
    })
    $('#contentAreaHomePageUpdateButton'+result.data[i]._id).on('click', function(){
      console.log("I am Button");
      //$(this).html("Mayank");
      $.ajax({
        url: "/newsfeed/update",
        type: "POST",
        datatype: "JSON",
        data: {id: result.data[i]._id},
        success: function(data){
          $("#contentAreaHomePageUpdateButton"+result.data[i]._id).html(count++);

        }
       });
    })
    $('#contentAreaHomePageDeleteButton'+result.data[i]._id).on('click', function(){
      console.log("I am Button");
      console.log("I am Button", result.data[i]._id);
      //$(this).html("Mayank");
      $.ajax({
        url: "/newsfeed/delete",
        type: "POST",
        datatype: "JSON",
        data: {id: result.data[i]._id},
        success: function(data){
          $("#contentAreaHomePageDeleteButton"+result.data[i]._id).hide();

        }
      });
    })
$(文档).ready(函数(){
//var$addhere=$(“#addhere”);
$.ajax({
键入:“获取”,
url:“/newsfeed/retrieve”,
//数据类型:“JSON”,
成功:功能(数据){
//控制台日志(数据);
//检查成功数据的长度。数据
常数数据=数据;
var datalength=Object.keys(data.data).length;
//调用result函数
var计数=0;
结果(数据、数据长度);
反应(数据、数据长度、计数);
}
});
函数结果(结果、数据长度){
//这些值是我的结果
控制台日志(结果);
var myPostHtml='';
//对象数组第一位的值
//console.log(result.data[0]。上传);
对于(i=0;i
${result.data[i].post}

我想说你可能被“闭包”绊倒了。这里有一个外部循环,它发出异步JavaScript请求。神奇的是,
I
的当前值对他们是可用的。但是不能保证
数据[]
当语句实际执行时,数组实际上包含该元素


我在这里看到了各种其他印刷错误问题…
result
results
等等。非常仔细地检查您的逻辑,确保您完全理解它应该做什么。

第一个循环仅用于将html从js文件附加到html文件。在第二个循环中,我添加eventli没有循环嵌套。我尝试将{results:result}作为stackoverflow上提到的答案之一发送到eventlistner,但它不起作用。它还说像这样访问它。event.data.results.data[I].\u id我计划将数据发送到我的mongodb数据库。我一个月前才开始使用jquery。所有后台都关闭在应该关闭的位置。我知道逻辑不好。数据和结果后来只是为了检查而添加的。result.data[I]。\u id只能在事件列表器中访问。
for(i=0;i<datalength;i++){
    $('#contentAreaHomePageLikeButton'+result.data[i]._id).on('click', {results: result}, function(event){
      console.log("I am button", event.data.results.data[i]); // This gives undefined
      var like = {
        id: event.data.results.data[i]._id
      }
      console.log("This is the like",like); // This gives typeerror exact error added at end
      //passdata = result.data.[i]_id;
      //$(this).html(count);
      $.ajax({
        url: "/newsfeed/update",
        type: "POST",
        datatype: "JSON",
        data: {id: result.data[i]._id},
        success: function(data){
          $("#contentAreaHomePageLikeButton"+result.data[i]._id).html(count++);

        }
       });
    })