angularjs 自定义右键菜单
2014-03-12 23:02
162 查看
/*
调用:
在要右键点击的元素上 添加contextMenu属性即可
*/
var app = angular.module('app', [])
app.directive('contextMenu', ['$window', function($window) {
return {
restrict: 'A',
//require:'^?ngModel',
link: function($scope, element, attrs) {
var opened = false;
varmenuElement = angular.element(document.getElementById(attrs.target));
function open(event, element) {
$scope.opened = true;
menuElement.css('top', event.clientY + 'px');
menuElement.css('left', event.clientX + 'px');
};
function close(element) {
$scope.opened = false;
};
$scope.opened = false;
//每个项点击的事件
$scope.fns = {
"查看":function($event){
alert('LOOK');
},
"刷新":function($event){
alert('刷新')
}
,
"点击":function($event){
alert('点击')
}
}
//模拟数据填充菜单 数据可通以点击元素过属性传递过来
//菜单的html 结构
//<ul id='a'><li ng-repeat='m in ms'>{{m.name}}</li></ul>
$scope.ms = $scope.model;
$scope.fn = function($event,sName){
/*
* 根据sName 来判断使用什么函数
*/
$scope.fns[sName]($event);
}
//显示右键菜单
element.bind('contextmenu', function(event) {
$scope.$apply(function() {
event.preventDefault();
open(event, menuElement);
});
});
//窗口绑定点击事件 隐藏右键菜单
angular.element($window).bind('click', function(event) {
if (opened) {
$scope.$apply(function() {
event.preventDefault();
close(menuElement);
});
}
});
}
};
}]);
//html
<body ng-app='app'>
<div context-menu
target='a'
ng-init='model=[{name:"查看"},{name:"刷新"},{name:"点击"}]'>hello</div>
<ul id='a' ng-show='opened'>
<li ng-repeat='m in ms' ng-click='fn($event,m.name)'>{{m.name}}</li>
</ul>
<script src="/javascripts/angular.js"></script>
<script src="/javascripts/app.js"></script>
</body>
调用:
在要右键点击的元素上 添加contextMenu属性即可
*/
var app = angular.module('app', [])
app.directive('contextMenu', ['$window', function($window) {
return {
restrict: 'A',
//require:'^?ngModel',
link: function($scope, element, attrs) {
var opened = false;
varmenuElement = angular.element(document.getElementById(attrs.target));
function open(event, element) {
$scope.opened = true;
menuElement.css('top', event.clientY + 'px');
menuElement.css('left', event.clientX + 'px');
};
function close(element) {
$scope.opened = false;
};
$scope.opened = false;
//每个项点击的事件
$scope.fns = {
"查看":function($event){
alert('LOOK');
},
"刷新":function($event){
alert('刷新')
}
,
"点击":function($event){
alert('点击')
}
}
//模拟数据填充菜单 数据可通以点击元素过属性传递过来
//菜单的html 结构
//<ul id='a'><li ng-repeat='m in ms'>{{m.name}}</li></ul>
$scope.ms = $scope.model;
$scope.fn = function($event,sName){
/*
* 根据sName 来判断使用什么函数
*/
$scope.fns[sName]($event);
}
//显示右键菜单
element.bind('contextmenu', function(event) {
$scope.$apply(function() {
event.preventDefault();
open(event, menuElement);
});
});
//窗口绑定点击事件 隐藏右键菜单
angular.element($window).bind('click', function(event) {
if (opened) {
$scope.$apply(function() {
event.preventDefault();
close(menuElement);
});
}
});
}
};
}]);
//html
<body ng-app='app'>
<div context-menu
target='a'
ng-init='model=[{name:"查看"},{name:"刷新"},{name:"点击"}]'>hello</div>
<ul id='a' ng-show='opened'>
<li ng-repeat='m in ms' ng-click='fn($event,m.name)'>{{m.name}}</li>
</ul>
<script src="/javascripts/angular.js"></script>
<script src="/javascripts/app.js"></script>
</body>
相关文章推荐
- 巧用 ToolStripControlHost 自定义WinForm右键菜单
- js实现完全自定义可带多级目录的网页鼠标右键菜单方法
- JS简单实现自定义右键菜单
- javascript自定义右键弹出菜单实现方法
- 自定义Windows右键菜单 -- 查看IL代码
- Flex屏蔽并自定义鼠标右键菜单
- 捕获鼠标点击事件 做自定义右键菜单
- Win7如何自定义鼠标右键菜单 添加用记事本打开
- Qml实现自定义右键菜单
- 对div实现右键弹出自定义菜单
- 创建自定义的Flash Player右键菜单
- 在浏览器中添加自定义右键菜单c#
- Flex4中添加自定义右键菜单
- 如何实现网页自定义右键菜单?
- Notepad++ 右键菜单自定义配置
- 自定义右键菜单代码详解(二)
- 阻止右键菜单(阻止默认事件)&&跟随鼠标移动(大图展示)&&自定义右键菜单
- 自定义网页右键菜单
- 屏蔽FLEX右键菜单以及实现自定义的FLEX右键功能
- javascript自定义右键菜单,js自定义右键删除——和派孔明