|
define(["jquery", "ipuUI"], function ($, ipuUI) {
// 扩展jquery增加一个回车的回调,不好的方便,不能取消绑定事件
$.fn.enter = function (back) {
$(this).on("keydown", function (e) { // 输入框是否有值
if (e.which == '13') { // 回车事件
back.call(this);
}
});
return this;
};
$(function () {
// 搜索框交互部分
$(".common-search").each(function (i, obj) {
// 调用width()是为了让当前对元素的修改马上生效,默认应该是延迟生效,等待刷新时生效?
// 在获取元素宽度,高度时或位置时,会让前面,对dom的修改马上生效
$(".common-search-input", this).focus(function () { // 输入框激活时
$(obj).addClass("common-search-active");
});
$(".common-search-input", this).blur(function () { // 输入框未激活时
$(obj).removeClass("common-search-active");
});
$(".common-search-input", this).on("keyup keydown", function (e) { // 输入框是否有值
$(obj).toggleClass("common-search-value", $(this).val() != "").width();
});
$(".common-search-input-clear", this).click(function () { // 清除按钮
$(".common-search-input", obj).val("").focus();
$(obj).removeClass("common-search-value"); // .width();
});
});
});
var actionTpl = '<div class="ipu-actions-modal common-action">'
+ '<div class="actions-modal-group-list">'
+ ' <div class="actions-modal-group">'
+ ' <div class="ipu-flex ipu-flex-align-center actions-modal-button" data-action="share">'
+ ' <i class="actions-icon ri-share-box-line"></i>分享'
+ ' </div>'
+ ' <div class="ipu-flex ipu-flex-align-center actions-modal-button" data-action="addSchedule">'
+ ' <i class="actions-icon ri-edit-box-line"></i>新增日程'
+ ' </div>'
+ ' </div>'
+ ' <div class="actions-modal-group">'
+ ' <div class="actions-modal-label" data-action="cancel">取消</div>'
+ ' </div>'
+ '</div>';
/**
*
* @param {Function} actionHandler 操作项回调函数
* @param {String} actionHandler.action 回调函数参数,操作项类型
*/
function action(actionHandler) {
var modalEl = $(actionTpl).appendTo("body")[0];
ipuUI.openModal(modalEl);
function removeActionDialog() { // 关闭弹窗并移除遮掩绑定事件
ipuUI.closeModal(modalEl);
$(".ipu-modal-overlay").off("click", removeActionDialog);
}
$(".ipu-modal-overlay").on("click", removeActionDialog); // 点击遮掩,移除弹框
$(".actions-modal-label, .actions-modal-button", modalEl).click(function () {
actionHandler && actionHandler($(this).data("action")); // 有回调函数则调用回调函数
removeActionDialog();
});
}
return {action: action};
});
|