2015-08-17 2 views
0

Изучение Django в данный момент, и я написал страницу, на которой отображается список элементов. Каждая строка имеет кнопку «Удалить». Я хочу написать функцию JQuery, чтобы сделать AJAX-вызов для моего AJAX API, чтобы удалить элемент, связанный с этой строкой.jquery/уникальный ярлык AJAX для каждой кнопки

Я только начал смотреть на JQuery сегодня (не знание JS, так как я новичок в веб-разработке) и застрял в попытке создать уникальную ссылку для каждой кнопки, но все же ссылаюсь на один сценарий JQuery (если это делает смысл).

Может кто-нибудь предложить лучший способ достичь этого и что соответствующий JQuery будет ссылаться на клик?

Я пытался что-то сделать;

$('#deletesub').click(function(){ 
    var sub_menu_id; 
    sub_menu_id = $(this).attr("data_sub_menu_id"); 
    the_boddy = $(this).attr("body") 
    $.ajax(
     url: '/pages/ajax_request/submenu/', 
     type: "POST", 
     data: {id: sub_menu_id, action: "delete"}, 
     dataType: "json", 
     success: function(data){ 
      do stuff 
     }, 
     fail: function(data){ 
      do stuff 
     }, 
    ); 
}); 

Но кнопка, похоже, ничего не делает, поскольку идентификатор для каждой кнопки - «deleteesub». Я думал, что мне это не удастся, а затем используйте $ (this), чтобы затем взаимодействовать с атрибутами правильной кнопки.

Любая помощь будет действительно оценена, поэтому заблаговременно.

+3

дать класс css кнопке и использовать '$ ('. myClassName'). click (function() {' – Sushil

ответ

1
$('#deletesub').click(function(){ 

В HTML идентификатор может быть привязан только к одному элементу. Если вы хотите повторно использовать идентификатор для выбора или стилизации, вы должны использовать класс. Так как вы, желающие предназначаться несколько элементов с одинаковым селектором, использовать класс вместо:

$('.deletesub').click(function(){ 

Теперь ссылки на $(this) внутри вашей функции будет область видимости какого элемент был щелкнули.

Кроме того, есть некоторые синтаксические ошибки в вызове Ajax:

  1. Аякса атрибутов должен быть завернут в объекте:

    $.ajax({ 
        url: '', 
        data: '' 
    }); 
    
  2. Удалите Запятую после атрибута fail (или независимо от конечного атрибута в вашем вызове ajax.
Смежные вопросы