evshop_dialog.md
3.66 KB
EVShop编程规则之Dialog篇
在Evshop中,对话框是使用artDialog控件,关于artDialog的使用方式,可以参考: artDialog文档 我们在artDialog基础上,做了一些基础的封装,封装参考代码:
/data/application/common/myDialog.js
对话框的基本使用示例,参考:/data/application/shop/sample_list.js
对话框(myDialog)的使用
要使用对话框,需要在前端js中引入:
var myDialog = require("myDialog");
-
使用基本的 Success/Error/Info 对话框:
myDialog.showSucc("Success"); myDialog.showError("Failed"); myDialog.showInfo("title","你好啊");
-
对话框中显示本页面中元素内的内容:
$("#opelem").bind("click",function(){ var dialog= myDialog.showMoreDialog(this,{ width:400, height:$("#dlg_element").height+200, title:$(this).attr("dialog_title"), content:$("#dlg_element").html(), },true); });
-
显示自定义confirm对话框
myDialog.showConfirm("提示信息","删除相册?注意:相册内的图片将转移到默认相册",function(){ $(this).ajaxSubmit({ data: {"id":album_id}, dataType:'json', type:'get', url:process_uri, success:function(responseText,stsText,xhr){ commonFunc.showAjaxProcessInfo(responseText); }, error:function(error) { myDialog.showError(error); } }); //alert('xxx'); });
-
对话框中显示指定URL的内容
$("#opelurl2").bind('click',function(){ // support param: width, var dialog = myDialog.showFormDialog(this,{ width:500, title:"Open Dialog", url:$(this).attr("dialog_url"), okValue : "确定", // 确定按钮文件,如果不设定,则默认为"确定" extraSubmitData : {"param1":"1","param2":"2"}, success: function(dialogObj,responseText) { console.log(responseText); // responsetext后端返回的JSON对象 myDialog.showSucc("Success"); //dialogObj.close().remove(); }, error: function(dialogObj,errorText) { console.log(errorText); myDialog.showError(errorText); //dialogObj.close().remove(); } }); });
注:一般来说,指定URL内容包含的是FORM表单,表单提交的Button不需要在页面中定义, 而是使用对话框提供的OK/Cancel按钮
-
对话框URL方式打开后,支持对话框内元素事件的监听 在myDialog.showFormDialog函数内, 可以使用eventListeners来监听对话框内元素的事件监听。方式如下:
$("#opelurl2").bind('click',function(){ // support param: width, var dialog = myDialog.showFormDialog(this,{ width:500, title:"Open Dialog", url:$(this).attr("dialog_url"), eventListeners : [{ selector:'input[type="text"]', // Dialog中事件绑定的选择器 eventName:'change', // Dialog中需要监测的事件 eventFunction : function($sender,$dlgDocument) { // 事件产生后所回调的函数 // $sender是触发此事件的jquery对象,$document是页面中document的jquery对象 console.log($sender.attr("name")); //console.log($dlgDocument); } }], okValue : "确定", // 确定按钮文件,如果不设定,则默认为"确定" ... }