Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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上下文$(this)传递给另一个函数并检索上下文数据_Javascript_Jquery_Sweetalert_Metronic - Fatal编程技术网

Javascript 将JQuery上下文$(this)传递给另一个函数并检索上下文数据

Javascript 将JQuery上下文$(this)传递给另一个函数并检索上下文数据,javascript,jquery,sweetalert,metronic,Javascript,Jquery,Sweetalert,Metronic,我正在使用Metronic引导管理它们,这是sweetalert附带的,这是一个警报库 我试图做的是在试图从表中删除记录时发出确认警报,每行都有一个删除按钮 现在Metronic已经做了一些扩展,所以您现在可以使用HTML5“数据”以声明的方式来声明标题、按钮类型等 在我的MVC应用程序中,下面的Razor代码迭代并添加了按钮,请注意,我正在向其添加数据id属性——我的想法是,当单击按钮以获取要删除的id时,我可以提取它 e、 g “我的页面”中的功能: <script type="tex

我正在使用Metronic引导管理它们,这是sweetalert附带的,这是一个警报库

我试图做的是在试图从表中删除记录时发出确认警报,每行都有一个删除按钮

现在Metronic已经做了一些扩展,所以您现在可以使用HTML5“数据”以声明的方式来声明标题、按钮类型等

在我的MVC应用程序中,下面的Razor代码迭代并添加了按钮,请注意,我正在向其添加数据id属性——我的想法是,当单击按钮以获取要删除的id时,我可以提取它

e、 g

“我的页面”中的功能:

<script type="text/javascript">
    function onConfirmClick() {
        alert($(this).data('id'));
        //make Ajax call here
    }
</script>

函数onConfirmClick(){
警报($(this.data('id'));
//在这里打电话
}
现在的问题是,我正在获取($this),但无法从按钮中获取id或任何属性

如果我在控制台中打印$(此)

只是“这个”

这里的问题是:

  • 如何在函数中获取数据id属性?如果我尝试$(this.data('id')-我会得到未定义的数据
  • 这是正确的设计方法吗?我希望能够在确认时调用自定义函数,但不中断sweetalert上的Metronic扩展

  • 要将
    id
    从按钮的
    data id
    传递到
    onConfirmClick()
    函数,请执行以下操作。。。 我会尝试通过一个变量来传递它

    因此,单击
    .mt sweetalert
    ,会触发一个sweetalert

    没有什么可以阻止您使用另一个
    单击
    处理程序将
    id
    存储在函数可访问的变量中

    var sweetAlertId;
    $(".mt-sweetalert").on("click", function(){
      sweetAlertId = $(this).data("id");
    });
    
    然后在函数中:

    function onConfirmClick() {
        alert(sweetAlertId);
        //make Ajax request using sweetAlertId here!
    }
    
    简而言之,该id不会被强制通过SweetAlert传输

    ;)

    要将
    id
    从按钮的
    数据id
    传递到
    onConfirmClick()
    函数。。。 我会尝试通过一个变量来传递它

    因此,单击
    .mt sweetalert
    ,会触发一个sweetalert

    没有什么可以阻止您使用另一个
    单击
    处理程序将
    id
    存储在函数可访问的变量中

    var sweetAlertId;
    $(".mt-sweetalert").on("click", function(){
      sweetAlertId = $(this).data("id");
    });
    
    然后在函数中:

    function onConfirmClick() {
        alert(sweetAlertId);
        //make Ajax request using sweetAlertId here!
    }
    
    简而言之,该id不会被强制通过SweetAlert传输

    ;)

    在if语句中,尝试使用
    onConfirmClick(this)
    并在函数中使用
    onConfirmClick(obj)
    然后使用
    alert($(obj).data('id'))
    仅按内存(意味着我没有检查超过此注释之前的检查次数)。。。SweetAlert在元素(您的按钮)上实例化,并动态创建新元素<代码>$(this)上下文就是这个新元素。。。不是你的按钮。好吧-“在函数中使用onConfirmClick(obj)然后使用alert($(obj)。data('id'))”-在if语句中不起作用尝试使用
    onConfirmClick(this)
    ,在函数中使用
    onConfirmClick(obj)
    then
    alert($(obj)。data('id'))
    ,仅通过内存(意思是我没有在这个评论之前检查更多)…SweetAlert在一个元素(你的按钮)上实例化并动态创建新元素。
    $(这个)
    上下文就是这个新元素…不是你的按钮。好吧-“在函数中使用onConfirmClick(obj)然后alert($(obj).data('id')”不工作,谢谢,不知道为什么我没有想到这一点:P-它很简单,而且工作-我只是想如果有一些更优雅的方式来做到这一点?这取决于你认为“优雅”……对我来说,“简单和工作”是相当好的。不知道为什么我没有想到这一点:P-它简单而有效——我只是想,如果有更优雅的方式来做这件事?这取决于你认为“优雅”…对我来说,“简单又实用”很好