我們在應用程序中有一個搜索功能,當用戶輸入某些內容時,結果將根據過濾器生成並顯示在頁面上。jQuery ajax不適用於生成的標記
這裏的動態結果後各keyup
:
htmlResult = `
<li>
<div>
<img src='${user.avatar}' width='80' alt='${user.fullName}' />
</div>
<a tabindex='0'
class ='btn2'
data-html='true'
data-toggle='popover'
data-content="<div class='list-group'><a href='#' class='item' data-val1-value='0'>Val1</a></div>">add</a>
</li>
`;
這裏是事件處理程序:
$("[data-toggle=popover]").popover();
$(document).on('click', '.btn2', function(event) {
event.preventDefault();
$(this).popover({ html: true });
});
$(document).on('click', '.item', function (event) {
event.preventDefault();
const value1 = $(this).attr('data-val1-value');
const params = {
value1: value1
};
$.ajax({
type: "POST",
url: endPoint,
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(params),
success: (result) => {
// refresh
}
});
});
有兩個問題與此代碼:
- 酥料餅,將顯示3次點擊後
.item
- jQuery ajax不會成功,它會在控制檯上顯示
400 Bad Request
錯誤。
PS:此代碼適用於未生成標記。
有什麼想法嗎?
在上面的代碼中,url被設置爲字符串'url',這似乎解釋了400錯誤。 – Pango
@Pango這實際上是一個URL,我不想把實際的網址放在這裏。 –
很酷,只是檢查。我不認爲你想把你的參數串起來,而只是傳遞params。 – Pango