在Ajax Success上,INSERT INTO TABLE_2(DATE, O_WT)
SELECT t1.F_DATE,
(CASE WHEN SUM(CASE WHEN t1.F_NAME like 'ty%asd%' THEN t1.F_PKEY END) = 1 THEN 1
WHEN SUM(CASE WHEN t1.F_NAME like 'ty%asd%' THEN t1.F_PKEY END) = 2 THEN 2
WHEN SUM(CASE WHEN t1.F_NAME like 'ty%asd%' THEN t1.F_PKEY END) BETWEEN 3 AND 5 THEN 3
WHEN SUM(CASE WHEN t1. F_NAME like 'ty%asd%' THEN t1.F_PKEY END) > 5 THEN 5
ELSE 0
END)
END AS O_WT
FROM TABLE_1 t1 CROSS JOIN
CLI_NAMES
WHERE t1.F_NAME IN (SELECT I_NAME
FROM I_WD
WHERE I_I_ID IN (SELECT I_MAP_ID
FROM T_T_MAP
WHERE T_MAP_ID = (SELECT T_ID
FROM TWD
WHERE T_NAME = 'abc'
)
)
) AND
t1.F_DATE between '2015-05-01' and '2015-06-01' AND
t1.F_NAME LIKE 'ty%pr%'
GROUP BY t1.F_DATE
元素附加到li
。
ul
它创造了这样的东西:
$.ajax({
..
success: function (response) {
response.data.forEach(function (x) {
$("#ulMain").append('<li class="liSub">' + x + '</li>');
}
});
我希望动态添加的<ul>
<li class="liSub">ABC</li>
<li class="liSub">BCF</li>
</ul>
元素在点击时触发警告框。
但是下面的代码没有被击中。
li
有趣的是,如果我使用F12 - Console运行代码的$(document).ready(function () {
$(".liSub").on("click", function () {
alert("Fired");
});
});
部分,它可以工作。什么阻止它正常运行,让它通过控制台运行?
答案 0 :(得分:2)
您错过了.
课程的前缀,并使用事件分段来创建动态dom元素
$("ul").on("click", '.liSub', function () {
alert("Fired");
});
答案 1 :(得分:1)
由于它是动态加载的元素,请尝试委派它:
$(document).ready(function () {
$("body").on("click",".liSub", function () {
alert("Fired");
});
});
答案 2 :(得分:1)
这是因为当您的页面准备就绪时,ajax调用尚未完成。你可以试试这个:
$(document).ready(function () {
$("#ulMain").on("click",".liSub", function () {
alert("Fired");
});
});
它会将点击绑定到执行时存在的#ulMain
,并在点击时将事件委托给.liSub
。它只创建一个绑定,这对全局性能也更好。