#jquery #cakephp
#jquery #cakephp
Вопрос:
Представьте, что у меня есть список динамически заполняемых названий фруктов, а коды, сгенерированные php, выглядят следующим образом
<div id="fruit_list">
<ol>
<li>Apple <a id='1' ref='red'>Delete</a></li>
<li>Pear <a href id='2' ref='green'>Delete</a></li>
</ol>
</div>
Я хочу выполнить удаление ajax, где, когда пользователь нажимает на ссылку «Удалить», в разделе fruit_list и при нажатии на ссылку «Удалить» я хочу знать идентификатор атрибутов и ссылку ссылки, на которую нажата ссылка. Зная атрибуты, как я могу разбить его в jQuery, чтобы ссылка могла быть разделена запятой.
Можете ли вы предложить подход, если я ошибаюсь?
Ответ №1:
Попробуйте:
$('#fruit_list a').bind('click', function (evt) {
console.log(
/*the element id*/
$(this).attr('id'),
/*the element attribute ref, splitted by ,*/
$(this).attr('ref').split(/,/)
);
});
Комментарии:
1. Большое спасибо. Я постараюсь отметить ответ, если он сработает. Большое вам спасибо.
Ответ №2:
Не слышал об атрибуте ref. И вы не должны создавать свои собственные. Вы могли бы использовать для этого атрибут data (data-ref=value).
Или вы могли бы сделать это так http://jsfiddle.net/gmrcn/6 /
HTML
<div id="fruit_list">
<ol>
<li>Apple <a href="#1" class="delete" id='red'>Delete</a></li>
<li>Pear <a href="#2" class="delete" id='green'>Delete</a></li>
</ol>
</div>
JS
$('a.delete').click( function() {
//get fruitname and id
var fruit = $(this).attr('id');
var id = $(this).attr('href').replace("#","");
//send with ajax, to your serverscript
$.post('yourdeletescript.php', {id:id, fruit:fruit} , function(data) {
//remove LI of the deleted
$('#' fruit).parent().remove();
});
//disable default link action
return false;
});
Ответ №3:
Я не совсем понимаю, о чем именно вы спрашиваете. Но я бы реализовал функцию удаления следующим образом.
$('div#fruit_list ol li a').click(function(){ //adding click event to all delete links
var id = $(this).attr('id'); //getting value of id attribute of the clicked link
var ref= $(this).attr('ref');//getting value of ref attribute of the clicked link
$.post('/script',{id:id, ref:ref},function(){ // send id and ref to delete script
$('#' id).parent().remove();//remove the corresponding li on success
});
})
Комментарии:
1. Это то, о чем я спрашиваю. Но я хочу выбрать ссылку #fruit_list, поскольку там может быть много других модулей и материалов.