将参数从href传递到jquery对话框

时间:2015-04-26 16:26:03

标签: jquery-ui

我在页面上有几个删除href。

<a href="#" class="delete" data-key=\'{"param1":"'.$id.'", "param2":"'.$id_table.'", "param3":"'.$table.'", "param4":"'.$paginanaam.'", "param5":"'.$template.'", "param6":"'.$lang.'"}\'><i class="fa fa-minus-square fa-lg"></i></a>

当用户点击此链接时,我会显示一个jquery框,询问他是否确定要删除。

到目前为止一切正常,但是我可以使用data-key中的参数使用window.location.href。一些帮助将非常感激。 我已经按照这个例子:http://jsfiddle.net/yayh3/3/

<script>
$(".delete").click(
  function() {
    $( "#dialog-confirm" ).dialog({
      resizable: false,
      height:170,
      modal: true,
      buttons: {
        "Verwijder": function() {
           var me = $(this),
            data = me.data('key');
            window.location.href = "pagina_delete.php?id_record="+data.param1+"&id_table="+data.param2+"&table="+data.param3+"&paginanaam="+data.param4+"&template="+data.param5+"&lang="+data.param6;
        },
        Cancel: function() {
          $( this ).dialog( "close" );
        }
      }
    }
  );
  });
</script>

1 个答案:

答案 0 :(得分:0)

您需要捕获被点击元素的上下文。

直接在click事件处理程序中,您可以存储this的当前值(将引用单击的元素),然后您可以在嵌套的对话框方法/选项中使用此变量

在这种情况下,您只需在对话框方法中使用var data = $(self).data('key')

$(".delete").click(function () {
    var self = this;

    $("#dialog-confirm").dialog({
        resizable: false,
        height: 170,
        modal: true,
        buttons: {
            "Verwijder": function () {
                var data = $(self).data('key');
                window.location.href = "pagina_delete.php?id_record=" + data.param1 + "&id_table=" + data.param2 + "&table=" + data.param3 + "&paginanaam=" + data.param4 + "&template=" + data.param5 + "&lang=" + data.param6;
            },
            Cancel: function () {
                $(this).dialog("close");
            }
        }
    });
});