jquery селектор в успех ajax

Използвам ajax функция за поставяне на данни в php скрипт. При успех правя запитване към база данни и повтарям всички itens по този начин:

include ("Database/RepairsdbConn.php");
$qryItem = $conn->prepare("SELECT SAP, Name FROM tblusedmaterial WHERE item = ?");
$Key = $_POST[MaterialTypeID];
$qryItem->execute(array($Key));
while($item = $qryItem->fetch(PDO::FETCH_ASSOC)) {
    echo '<div class="row">
            <div class="col-md-4">
                <input type="text" value="'.$item['SAP'].'" class="form-control input-sm">    
            </div>
            <div class="col-md-4">
                <input type="text" value="'.$item['Name'].'" class="form-control input-sm" style="width: 300px">
            </div>
            <div class="col-md-2">
                <input type="text" class="form-control input-sm" style="width: 40px">    
            </div>
            <div class="col-md-4">
                <button type="button" class="btn btn-default btn-xs" id="AddQuantity">
                    <span class="glyphicon glyphicon-plus"></span>
                </button>
            </div>
            </div>
            <p></p>';
}

Това ще създаде формуляр с всички продукти от базата данни и с въвеждане за добавяне на количество и бутон за натискане (+) за увеличаване на количеството.

Когато се позовавам на бутона на jquery, нищо не се случва.

        $('#AddQuantity').click(function () {
            alert('TEST');
        });

Как мога да се позова на всеки бутон само веднъж?


person user3163404    schedule 21.01.2014    source източник
comment
Дефинирахте ли манипулатора на събитие за кликване AddQuantity преди или след ajax извикване?   -  person alexmac    schedule 21.01.2014
comment
ID означава идентификатор и трябва да бъде уникален. Не можете да имате всичките си бутони с ID AddQuantity. Използвайте клас.   -  person Anthony Grist    schedule 21.01.2014
comment
Не, идентификаторът трябва да е уникален само по форма!   -  person alexmac    schedule 21.01.2014
comment
Но мога ли да използвам jquery parent или child или най-близкия?   -  person user3163404    schedule 21.01.2014
comment
@Александър Какво??? Идентификаторите трябва да са уникални в контекста на документа   -  person A. Wolff    schedule 21.01.2014
comment
Събитието се дефинира след извикването на ajax   -  person user3163404    schedule 21.01.2014
comment
@А. Wolff, опитай да добавиш два елемента с еднакъв идентификатор. Какво се случи?   -  person alexmac    schedule 21.01.2014
comment
@Alexander, пробвай, какво се случва, когато искаш да обвържеш събитие?... jsfiddle.net/7RYb9   -  person A. Wolff    schedule 21.01.2014
comment
@Alexander Спецификацията диктува, че ID трябва да бъде уникален в целия документ. Браузърите не налагат това изискване, когато анализират HTML, но неща като document.getElementById() ще върнат само един елемент с посочения идентификатор, дори ако има няколко. Целият смисъл на ID и ID селектор е да сочи към един уникален елемент.   -  person Anthony Grist    schedule 21.01.2014
comment
Бутонът вече е клас от Bootstrap. Трябва ли да променя това=   -  person user3163404    schedule 21.01.2014
comment
@А. Волф, Антъни Грист, да, прави сте. ID може да не е уникален, но може да създаде някои проблеми.   -  person alexmac    schedule 21.01.2014
comment
@user3163404 Просто добавете нов клас към него, когато генерирате HTML във вашия PHP код. Освен ако Bootstrap не презаписва напълно тези, това няма да е проблем.   -  person Anthony Grist    schedule 21.01.2014
comment
Как мога да добавя нов клас? Трябва ли да изтрия този на бутона   -  person user3163404    schedule 21.01.2014


Отговори (1)


премахнете идентификатора от бутона и изберете бутона с клас

    $('.col-md-4 .btn').on('click', function () {
        alert('TEST');
    });
person kasper Taeymans    schedule 21.01.2014