我正在尝试在.on()方法调用的函数内执行$ .ajax(),这样在新添加的数据中,就可以在.click()事件上执行脚本 - 我知道这可能与其他请求类似,但我已经尝试过,并且无法找到代码的错误......
ajax函数通过选择中的更改来调用,并且'这个'作为变量传递给函数。
数据被正确插入目标div中,但似乎没有冒泡,因为没有javascript从它运行(但是在目标div之外运行)。
我使用了.on()所以它会冒泡,并更新DOM,我不会看到我做错了...
使用以下方式调用ajax:
$("body").on("change", "[data-project-ajaxSelect='true']", {select: this},Select_AjaxCall);
function Select_AjaxCall(event) {
$select = event.data.select;
if (typeof $select.data === "undefined" || $select.data === null) {
var $select = $(this);
}
var options = {
url: $select.attr("data-project-action"),
type: $select.attr("data-project-method"),
target: $select.attr("data-target"),
data: { guid: $select.val() }
}
$.ajax({
type: options.type,
url: options.url,
data: options.data,
dataType: "html",
success: function (data) {
console.log(data)
$(options.target).html(data);
}
});
return false;
};
从该代码中添加一个按钮,其中包含以下查看代码:
<button id=@Model.Guid
class="button default cycle-button"
data-toggle="modal"
data-target="#modalDiv"
data-backdrop="static"
data-keyboard="true"
data-modal-modal="true"
data-modal-controller="Fin_Movement_Type"
data-modal-action="Create"
data-modal-var-guid=@Model.Guid
data-modal-var-modal=@ViewBag._modal>
<span class="icon mif-plus"></span>
</button>
通过点击此按钮,应触发以下.click()事件......
$("[data-modal-modal='true']").click(function () { ... }
但它不是。
请帮我查一下我代码中的错误...谢谢。
答案 0 :(得分:1)
修改
您似乎需要live
已从jQuery
中移除的功能,但您可以使用on
代替此功能,这样:
$(function () {
$(document).on("click","[data-modal-modal='true']", function () {
alert('clicked');
});
});
<强>原始强>
您可以在成功方法结束时添加代码:
success: function (data) {
console.log(data);
$(options.target).html(data);
$("[data-modal-modal='true']").on("click", function() {
alert('clicked!');
});
}
您也可以在onclick
属性中加载带有合适脚本的按钮,例如:
<button id="@Model.Guid"
...
onclick="alert('clicked!');">
<span class="icon mif-plus"></span>
</button>