stopPropagation предотвращает вызов функции обратного вызова успеха ajax

У меня есть кнопка внутри div

<div id="outerDiv">
    <button data-details-rid="@Model.RequestId">Details</button>
</div>

и функции jquery, которые запускают событие по щелчку:

$("[data-details-rid]").on('click', function (event) {
    var request_id = $(this).attr('data-details-rid');
    console.log(request_id);
    var request_details = {};
    request_details.url = "/Requests/Details?RequestId=" + request_id;
    request_details.async = false;
    request_details.datatype = "html";
    request_details.contentType = "application/json; charset=utf-8";
    request_details.success = function (request_info) {/*...*/};
    $.ajax(request_details);
});

$("#outerDiv").on('click', function (event) {
    another ajax call
});

теперь, очевидно, когда я нажимаю кнопку, также вызывается функция #outerDiv (нежелательный эффект).

когда я ставлю event.stopPropagation() вот так:

$("[data-details-rid]").on('click', function (event) {
    event.stopPropagation();
    var request_id = $(this).attr('data-details-rid');
    console.log(request_id);
    var request_details = {};
    request_details.url = "/Requests/Details?RequestId=" + request_id;
    request_details.async = false;
    request_details.datatype = "html";
    request_details.contentType = "application/json; charset=utf-8";
    request_details.success = function (request_info) {/*...*/};
    $.ajax(request_details);
});

то функция успеха ajax не выполняется. Почему?


person dsb    schedule 30.08.2015    source источник
comment
Проверьте свою консоль на наличие ошибок при нажатии кнопки с [data-details-rid]. Между тем, объект, который вы передаете, должен иметь dataType, а НЕ datatype.   -  person Ahmad Baktash Hayeri    schedule 30.08.2015
comment
@AhmadBaktashHayeri Я проверил консоль. нет сообщения об ошибке или любого другого сообщения. Функция jQuery вызывается, обратный вызов успеха - нет. Есть идеи?   -  person dsb    schedule 30.08.2015
comment
Что, если вы удалите метод preventDefault и return false в конце функции.   -  person Ahmad Baktash Hayeri    schedule 30.08.2015
comment
@AhmadBaktashHayeri Я точно не знаю, что такое метод «preventDefault». Однако я поставил «return false» в конце функции, и снова функция успеха не вызывается.   -  person dsb    schedule 30.08.2015
comment
Что печатается на вашей консоли, когда вы нажимаете кнопку сейчас после возврата false. (Если бы у вас был firebug (для Firefox), отладка была бы намного проще.)   -  person Ahmad Baktash Hayeri    schedule 30.08.2015
comment
@AhmadBaktashHayeri Понятно. Вы очень правы. На самом деле функция успеха ВЫЗЫВАЕТСЯ, и все работает нормально. Однако модальное диалоговое окно начальной загрузки не появляется. Думаю, мне следует переписать весь вопрос. Может еще один поставить.   -  person dsb    schedule 30.08.2015
comment
Совсем забыл упомянуть, НЕОБХОДИМО указать type="button" на той кнопке, которая у вас есть, если она находится внутри элемента form, она вызовет отправку формы, и ajax никогда не будет вызван.   -  person Ahmad Baktash Hayeri    schedule 30.08.2015
comment
@AhmadBaktashHayeri нет, это не внутри формы. хорошая точка зрения.   -  person dsb    schedule 30.08.2015
comment
Хорошо, ждем правки.   -  person Ahmad Baktash Hayeri    schedule 30.08.2015
comment
@AhmadBaktashHayeri Я задаю еще один вопрос, потому что редактирование сделает весь разговор непонятным для читателей. Вот ссылка: stackoverflow. com/questions/32296638/   -  person dsb    schedule 30.08.2015