Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery代码的重复执行_Javascript_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript jQuery代码的重复执行

Javascript jQuery代码的重复执行,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,我为创建一个FitnessPlanDay编写了jQuery ajax: //添加一天ajax $('#addDay')。在(“单击”, 函数(){ $.ajax({ url:“@url.Action(“AddDay”)”, 键入:“POST”, 数据:{ fitnessPlanId:“@fitnessPlan.Id”, dayTitle:$(“#dayTitle”).val() } }).完成(功能(结果){ $('#DayTitle').val(''); $('#DaysPlace')。追加(

我为创建一个FitnessPlanDay编写了jQuery ajax:

//添加一天ajax
$('#addDay')。在(“单击”,
函数(){
$.ajax({
url:“@url.Action(“AddDay”)”,
键入:“POST”,
数据:{
fitnessPlanId:“@fitnessPlan.Id”,
dayTitle:$(“#dayTitle”).val()
}
}).完成(功能(结果){
$('#DayTitle').val('');
$('#DaysPlace')。追加(结果);
});
});
它工作正常,我为EditTitleDay编写了jQuery ajax,因为加载的内容是通过ajax加载的,所以我为click事件编写了以下代码:

//编辑DayTitle Ajax
$('body')。在('click','title',function()上{
$(此)。单击(函数(){
var$this=$(this);
var$findClickedDayId=$this.find('.currentDayId').val();
$('#daytileeditmodel#currentDayTitle').text($this.text());
$('daytileeditmodel').model('show');
$(“#daytileeditmodel#saveNewDayTitle”)。在('click',function()上{
$.ajax({
url:“@url.Action”(“EditDayTitle”),
键入:“POST”,
数据:{
newDayTitle:$(“#dayTitleEditModal#newDayTitle”).val(),
currentDayId:$findClickedDayId
}
}).完成(功能(结果){
$this.text(结果);
});
});
});
});
在我的动作控制器中:

 public String AddDay(Guid fitnessPlanId, string dayTitle)
        {
            var day = new FitnessPlanDay()
            {
                FitnessPlanId = fitnessPlanId,
                DayTitle = dayTitle
            };
            var newDay = _service.FitnessPlanDayRepository.Add(day);
            return "<div class=\"col-md-offset-2\">" +
                   " <div class=\"col-md-12\">" +
                   " <div class=\"portlet box border\">" +
                   "<div class=\"portlet-heading\">" +
                   " <div class=\"portlet-title\">" +
                   " <h3 class=\"title\">" +
                   "   <i class=\"icon-info\"></i> " +newDay.DayTitle +
                   "<input type=\"hidden\" class=\"currentDayId\" value=\""+newDay.Id+"\">"+
                   "        </h3>" +
                   "   </div>" +
                   " <div class=\"buttons-box\">" +
                   "<a class=\"btn btn-sm btn-default btn-round btn-openMoveModal\"  rel=\"tooltip\" title=\"اضافه کردن حرکت\" href=\"#\"><i class=\"icon-plus\"></i></a>" +
                   "<a class=\"btn btn-sm btn-default btn-round btn-deleteDay\" id=\"" +newDay.Id+"\" rel=\"tooltip\" title=\"حذف روز\" href=\"#\"><i class=\"icon-trash\"></i></a>" +
                   "</div>" +
                   "</div>" +
                   "<div class=\"portlet-body\" id=\"movePlace/"+newDay.Id+"\"></div>" +
                   "</div>" +
                   "</div>" +
                   "</div>";
        }
公共字符串AddDay(Guid fitnessPlanId,字符串dayTitle)
{
var日=新的FitnessPlanDay()
{
FitnessPlanId=FitnessPlanId,
DayTitle=DayTitle
};
var newDay=_service.FitnessPlanDayRepository.Add(day);
返回“”+
" " +
" " +
"" +
" " +
" " +
“”+newDay.DayTitle+
""+
"        " +
"   " +
" " +
"" +
"" +
"" +
"" +
"" +
"" +
"" +
"";
}
但是上面的代码只正确工作一次。如果第一次编辑标题,则可以,但第二次或第三次代码的运行次数与之前单击的相同。如果我编辑一个标题两次,第二次代码在服务器上运行两次


我不知道为什么会出现这个问题。我的问题在哪里?

您的代码在单击内容时添加了单击事件处理程序。我已经删除了所有不必要的内容,并稍微整理了您的代码。这应该可以满足你的需要

$('body').on('click','.title',function() {
    var $this = $(this);
    var $findClickedDayId = $this.find('.currentDayId').val();
    $('#dayTitleEditModal #currentDayTitle').text($this.text());
    $('#dayTitleEditModal').modal('show');
});

$('#dayTitleEditModal #saveNewDayTitle').on('click',function() {
    $.ajax({
        url: '@Url.Action("EditDayTitle")',
        type: 'POST',
        data: {
            newDayTitle: $('#dayTitleEditModal #newDayTitle').val(),
            currentDayId: $findClickedDayId
        }
    }).done(function(result) {
        $this.text(result);
    });
});

你说它在服务器上运行两次是什么意思?您确定不是每次都附加数据吗?您是在单击事件处理程序中分配单击事件处理程序。你的筑巢让你很难知道应该做什么和不应该做什么。基本上,
.on(“click”)
.click()
做同样的事情,没有理由让一个在另一个里面。将所有这些代码从彼此中移出,然后看看剩下的是什么。@LioraHaydont是的,我确定,我检查了服务器端。我第二次(或更多次)编辑了一个标题(或另一个标题)。请求在服务器端2执行times@Archer我删除了第二次单击,但它仍在重复,所有标题都在更改请查看下面的代码-它可能会解决您的问题。无需担心-很乐意帮助:)