Я сделал много, но ничего не работает, я бы хотел сделать, когда я нажму на td, тогда он примет идентификатор этого td, и этот идентификатор перейдет к и он будет извлекать все дочерние элементы этого идентификатора. теперь я хочу добавить эти дочерние элементы к этому td на основе id. Но когда я нажимаю на вложенный тд, он принимает идентификатор родителя. Вот мой код.не удалось связать событие click для вложенного li в jquery
<script type="text/javascript" >
$(document).ready(function() {
var url = document.URL;
var parts = url.split("/");
var t = "";
for(var i=0; i<parts.length-1; i++) {
t += parts[i] + "/";
}
var which_li = "";
$("td").bind('click',function(e) {
e.stopPropagation();
which_li = $(this).attr("id");
$.ajax({
type: "POST",
data : {id : which_li},
cache: false,
url: t+"treeData",
success: function(data){
var childs = data.split(",");
var res = "<table style='border:1px solid #ddd'><tr>";
for(var i=0; i<childs.length; i++){
if(childs[i] != "") {
res += "<td id='"+childs[i]+"'>"+childs[i]+"</td>";
}
}
res += "</tr></table>"
$("td[id='" + which_li +"']").append(res);
}
});
});
});
</script>
Html таблицу с идентификатором по умолчанию, который будет корень всех ид:
<table id="data" style=" margin:0 auto; border:1px solid #ddd" >
<tr>
<td id='2'>2</td>
</tr>
</table>
это только один раз работает, но после того, что он только принимает идентификатор родительского тд не ребенка тд. Пожалуйста, помогите мне решить эту проблему.
e.stopPropagation();
Stop Propagation также не работает.
вот моя SQL таблица
create table user_login (
id int not null auto_increment,
parent int not null
);
моя структура таблица будет выглядеть так:
// this is my table strucutre
<table id="data" >
<tr>
<td id="2">2
<table>
<tr>
<td id="24">24
<table>
<tr>
<td id="29">29</td>
<td id="30">30</td>
</tr>
</table>
</td>
<td id="25">25</td>
<td id="26">26</td>
</tr>
</table>
</td>
</tr>
</table>
когда я нажму на идентификаторе 2, то таблица будет добавлять к т.ду, содержащему Чайлдс 24,25,26, и когда я нажму на 24, тогда таблица добавит к td, содержащему дочерние элементы 29, 30 и так далее.
но когда я хочу получить идентификатор 24 или 25, тогда он дает мне идентификатор родительского тд, который равен 2 каждый раз. Пожалуйста, помогите мне.
Я вижу только один тд там спариваются – basarat
идентификаторы уникальны, и не должен содержать только один номер. – adeneo
Пожалуйста, также разместите HTML _after_, вставив дочерние элементы в '
ответ
Вы являетесь обязательным, но только для элементов, которые существуют при связывании. Событие распространяется до тех пор, пока оно не попадет в элемент, который был связан, и в этот момент он останавливает распространение. Что вам нужно сделать, это связать событие с элементом, который существует, а затем делегировать это событие тому, которое может или не может существовать еще. Нечто подобное должно работать:
источник
2013-04-29 06:30:49 dave
Используйте жить вместо привязки, если вы хотите связать с элементами, которые могут быть добавлены в будущем, так как вы добавляете элементы динамически (http://api.jquery.com/live/):
Также stopPropogation работает отлично.
источник
2013-04-29 06:31:53 basarat
Не используйте живые или связные. Используйте. – kayz1
'$ .live' устарел и удален с [jQuery 1.9] (http://jquery.com/upgrade-guide/1.9/#live-removed). Используйте [$ .on] (http://api.jquery.com/on/) вместо – Arthur
Согласовано. @Dave уже ответили на этот вопрос :) – basarat
Попробуйте
источник
2013-04-29 06:40:47
спасибо всем и прошу прощения за опоздание. Коды, которые вы предоставили, не работают. Я редактировал свой пост. Пожалуйста, посмотрите мой пост. – user2320220
Извините, я сделал некоторую ошибку, когда метод работает нормально. Код работает нормально. Спасибо вам всем за помощь. – user2320220
@ user2320220 можете ли вы отправить ошибку в качестве ответа –
Ну, прежде всего, не являются обязательными событие нажмите чтобы вновь добавленные ТД. Вторичный, не привязывайте событие click к тегу, лучше отдавайте класс в td и привязывайте его к этому классу, таким образом, у вас будет больше гибкости. Исправленная ваш код немного:
И ваш HTML (добавлен класс тд):
В будущем, попробуйте использовать
dataType: 'json'
, и на вашей стороне PHP вы можете сделать что-то как:Используя этот метод (и это является правильным, если вы takeajax серьезно), вы wond должны вручную разбить значения, так что вместо:
Вы можете сделать это:
источник
2013-04-29 06:50:51 Arthur
Смежные вопросы