PDA

View Full Version : سوال: عدم اجرا کد هنگام کلیک



Iran58
دوشنبه 12 شهریور 1397, 10:53 صبح
سلام
من یک modal نوشته ام که هنگام لود شدن modal یک button به ان اضافه میکنم از طریق کد نویسی

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body" id="bodyModal">
...
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>




<script>
function Create() {
$.ajax({
url: '@Url.Action("Create", "TestModals")',
type: "Get",
data: {}
}).done(function (res) {
$("#exampleModal").modal("show");
$("#exampleModalLabel").html('افزودن');
$("#bodyModal").html(res);
var r = $('<button type="button" class="btn btn-primary" id="add">Edit changes</button>');
$(".modal-footer").append(r);
$("#save").remove();
});
}
</script>

اما وقتی روی button کلیک میکنم هیچ عملی اجرا نمیشود

<script>
$(function () {
$("#save").on('click', function () {
alert(1);
});
});
</script>

مشکلم کجاست

marasiali
سه شنبه 13 شهریور 1397, 19:20 عصر
سلام
یه دلیل ساده داره اونم اینه که event ها در اجرای اولیه صفحه لود میشن و اون زمان هنوز button شما تعریف نشده بوده در نتیجه الآن هم خاصیت click نداره که بخوای صداش بزنی راه حلش اینه که از خاصیت click عنصر والدی که از اول موجود بوده استفاده کنی یعنی اینجوری مثلا:



$(function () {

$("body").on('click','#save', function () {

alert(1);

});

});