Передача переменной в функцию onclick в ajax - PullRequest
0 голосов
/ 12 июня 2018

У меня есть переменная в ajax, и я хочу отправить событие onclick.здесь ..

function childID(Obj){
        var replayId = Obj.id;
        // var replayId = '"#'+replayId+'"';
        // console.log(replayId); 
     }

И я хочу сохранить событие onlick ..

$('#allcomments').on("click", replayId, function(){  
     console.log('something action...'); 
 }); 

здесь allcomments - родительский идентификатор, а replaceId - не выход на странице кодирования ..

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Вы создаете переменную replayId как локальную переменную для function childID(Obj).

function childID(Obj) {
  var replayId = Obj.attr('id');
  return replayId;
}

$('input[type=button]').on("click", function() {
  var theID = childID($(this));
  alert(theID);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td><input type="button" id="drink" value="Drink Me"></td>
    <td><input type="button" id="eat" value="Eat Me"></td>
  </tr>
</table>

Редактировать

Без большего количества кода трудно создать надежный ответ.Я также не до конца понимаю ваше положение.Целью AJAX является не полагаться на несколько страниц для функциональности.Все - кроме таких вещей, как вызовы API - должно быть сделано на самой странице.

Вот еще один фрагмент, который я построил на основе системы комментирования.Он использует две функции - которые можно превратить в одну - на странице с комментариями, которая возвращает значения для использования в AJAX.

function findCommentID (comment) {
	return comment.parents('li').attr('id');
}

$('#allcomments li li').on('click',function(){
	var commentID = findCommentID($(this))
	var commentAct = $(this).attr('class')
	
	/* Do your AJAX calls here */
	alert(commentID + " " + commentAct)
});
h2 {
  margin-bottom: 0;
  }

p:first-of-type {
  margin-top: 0;
  }
  
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  }
  
ul ul {
  text-align: right;
  }
  
li li {
  display: inline;
  padding: .5em;
  margin-right: 1em;
  }

li li:hover {
  background-color: #FDD;
  cursor: pointer;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="allcomments">
	<li id="comment1">
		<h2>Comment 1</h2>
		<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse porta, quam eget hendrerit molestie, felis mi placerat tellus, sed imperdiet augue ipsum non quam. Praesent et nisl eu dolor sagittis fringilla. Quisque mi dolor, porttitor quis nunc sed, pulvinar pellentesque ex. Donec cursus volutpat orci quis dapibus. Maecenas id erat id mi blandit viverra pharetra non leo. Cras ut eros sit amet dolor feugiat molestie et a massa. Mauris velit enim, interdum ut diam at, condimentum bibendum enim. Curabitur dignissim consectetur ligula, in scelerisque orci placerat et. Vivamus tristique sem quis massa sodales elementum. Etiam non aliquet augue, a tincidunt ligula. In eget urna sit amet leo feugiat interdum.</p>
		<nav><ul><li class="reply">REPLY</li><li class="report">REPORT</li></ul></nav>
	</li>
	<li id="comment2">
		<h2>Comment 2</h2>
		<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse porta, quam eget hendrerit molestie, felis mi placerat tellus, sed imperdiet augue ipsum non quam. Praesent et nisl eu dolor sagittis fringilla. Quisque mi dolor, porttitor quis nunc sed, pulvinar pellentesque ex. Donec cursus volutpat orci quis dapibus. Maecenas id erat id mi blandit viverra pharetra non leo. Cras ut eros sit amet dolor feugiat molestie et a massa. Mauris velit enim, interdum ut diam at, condimentum bibendum enim. Curabitur dignissim consectetur ligula, in scelerisque orci placerat et. Vivamus tristique sem quis massa sodales elementum. Etiam non aliquet augue, a tincidunt ligula. In eget urna sit amet leo feugiat interdum.</p>
		<nav><ul><li class="reply">REPLY</li><li class="report">REPORT</li></ul></nav>
	</li>
	<li id="comment3">
		<h2>Comment 3</h2>
		<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse porta, quam eget hendrerit molestie, felis mi placerat tellus, sed imperdiet augue ipsum non quam. Praesent et nisl eu dolor sagittis fringilla. Quisque mi dolor, porttitor quis nunc sed, pulvinar pellentesque ex. Donec cursus volutpat orci quis dapibus. Maecenas id erat id mi blandit viverra pharetra non leo. Cras ut eros sit amet dolor feugiat molestie et a massa. Mauris velit enim, interdum ut diam at, condimentum bibendum enim. Curabitur dignissim consectetur ligula, in scelerisque orci placerat et. Vivamus tristique sem quis massa sodales elementum. Etiam non aliquet augue, a tincidunt ligula. In eget urna sit amet leo feugiat interdum.</p>
		<nav><ul><li class="reply">REPLY</li><li class="report">REPORT</li></ul></nav>
	</li>
</ul>
0 голосов
/ 12 июня 2018

Вы можете использовать Clousures для поддержания состояния

function childID(Obj){
  var replayId = Obj.id;
  // var replayId = '"#'+replayId+'"';
  // console.log(replayId); 
  function outer (id) {
     // id will remain in scope of this function and will be accessable to inner callback
     return function inner () {
      console.log('something action...', id);
     }
  }
  $('#allcomments').on("click", outer(replayId));
  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...