Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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
Jquery 在mvc中使用ajax有时不会调用模态对话框_Jquery_Asp.net_Ajax_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Jquery 在mvc中使用ajax有时不会调用模态对话框

Jquery 在mvc中使用ajax有时不会调用模态对话框,jquery,asp.net,ajax,asp.net-mvc,asp.net-mvc-3,Jquery,Asp.net,Ajax,Asp.net Mvc,Asp.net Mvc 3,我正在使用ajax和分页显示模式对话框。我发现,当加载初始页面时,会调用modal dialog,这是一个使用Ajax的部分视图,但如果我单击下一页并添加新的DOM元素,那么有时当我单击操作链接时,只加载一个没有Ajax的简单部分视图,在调试modal dialog时不会加载它,假设我想要查看的记录的id是11,那么通过ajax它是11?==13844555,但是当调用普通的部分视图时,它只是ViewDetail?page=3。我正在使用以下jquery代码调用模态对话框。请建议问题所在。谢谢

我正在使用ajax和分页显示模式对话框。我发现,当加载初始页面时,会调用modal dialog,这是一个使用Ajax的部分视图,但如果我单击下一页并添加新的DOM元素,那么有时当我单击操作链接时,只加载一个没有Ajax的简单部分视图,在调试modal dialog时不会加载它,假设我想要查看的记录的id是11,那么通过ajax它是11?==13844555,但是当调用普通的部分视图时,它只是ViewDetail?page=3。我正在使用以下jquery代码调用模态对话框。请建议问题所在。谢谢

$(function () {
    $.ajaxSetup({
        cache: false
    });
    $('.btnShowDialog').click(function () {
        $('.ShowModalDialog').load(this.href,function () {
            $('#ShowModal').modal({
                backdrop: 'static',
                Keyboard: true
            }, 'show');
        }),
        return false;
        e.preventDefault();
    }););
用户2802591

如果您正在更改一些DOM元素,那么您可能正在以某种方式更改按钮。我不确定,因为我没有看到所有的代码

无论如何,如果这是真的,jQuery的
click
方法就不能在动态DOM元素上执行。改为使用此块:

$(document).on('click', '.btnShowDialog', function () {
     // code here
});
这将在动态DOM元素上执行函数。当然,如果您正在更新该按钮,或者在动态添加元素时以某种方式对其进行更改,那么这就是解决方案

  • 你错过了一个“}”
  • “防止默认值”应位于开始位置
  • 对于一个新的DOM,您需要重置点击,或者使用“on”(如果您有一个旧的JQ:,则使用live)

  • 最后缺少
    }
    这就是问题所在,或者在其他地方我错了,因为当我在最初加载的第一个页面上时,它工作正常。e未声明,需要从函数callback传入。我正在使用ajax加载下一个页面,并且没有调用链接上的单击事件。谢谢你的回答。。。。
    $(function () {
        $.ajaxSetup({
            cache: false
        });
        $('.btnShowDialog').on('click',function (e) {
           e.preventDefault();
    
            $('.ShowModalDialog').load(this.href,function () {
                $('#ShowModal').modal({
                    backdrop: 'static',
                    Keyboard: true
                }, 'show');
            }),
            return false;
    
        });
    });