query ui dialog替代confirm的實現方法

js的confirm,有的瀏覽器會直接屏蔽掉,導致功能無法使用,推薦使用jquery ui 的dialog功能,完美替換confirm功能

1、html代碼

?
1
2
<div id="confirm_dialog" title="提示" style="display:none;">
</div>

把上面代碼放到公用的地方

2、模擬confirm js代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var common = {
  confirm_act:function(dialog_id,msg,callback) {
    $("#"+dialog_id).html("<p class='message'>"+msg+"</p>");
    $("#"+dialog_id).dialog({
      resizable: false,
      modal: true,
      overlay: {
        backgroundColor: '#000',
        opacity: 0.5
      },
      buttons: {
        '確認': function() {
          callback.call();
          $(this).dialog('close');
        },
        '取消': function() {
          $(this).dialog('close');
        }
      }
     });
  }
}

定義了一個方法confirm_act,放到公用js文件中,第一個參數,彈層的ID,第二個參數是提示消息,第三個,是回調函數。
注意,調用回調函數時,要用js的call()函數,這個回調函數可以帶參數,也可以再包含回調函數。

3、回調js代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
var recommend = {
  delete: function(url,obj)
  {
    $.ajax({
      url: url,
      type: "get",
      success:function(data)
      {
        ............省略..........
      }
    });
  }
}

4、怎麼調用

?
1
2
3
4
$('.recommended_delete').click(function(){
  var obj = this//重命名
  common.confirm_act('confirm_dialog',$(obj).attr('msg'),function(){recommend.delete($(obj).attr('url'),obj)});
});

注意,如果函數中要傳this,注意要重新定義

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章