Skip to content

Commit cbe7e01

Browse files
committed
New optional parameter open(..., extraData)
closed mar10#42
1 parent 3b3db8b commit cbe7e01

File tree

7 files changed

+21
-16
lines changed

7 files changed

+21
-16
lines changed

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# 1.2.5 / unreleased
1+
# 1.3.0 / unreleased
22

3-
*
3+
* [FEATURE] New optional parameter open(..., extraData)
44

55
# 1.2.4 / 2013-12-25
66

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,10 +202,11 @@ structure (see [jQueryUI menu] for details):
202202
<dd>
203203
Return true if popup is visible.
204204
</dd>
205-
<dt>open(target)</dt>
205+
<dt>open(target[, extraData])</dt>
206206
<dd>
207207
Open context menu on a specific target (target must match the options.delegate filter).<br>
208-
Call like <code>$(...).contextmenu("open", target);</code>.
208+
Call like <code>$(...).contextmenu("open", target[, extraData]);</code>.
209+
Optional `extraData` will be available in eventHandlers as <code>ui.extraData</code>.
209210
</dd>
210211
<dt>replaceMenu(menu)</dt>
211212
<dd>

demo/index.html

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,9 @@
107107
// Implement the beforeOpen callback to dynamically change the entries
108108
beforeOpen: function(event, ui) {
109109
var $menu = ui.menu,
110-
$target = ui.target;
110+
$target = ui.target,
111+
extraData = ui.extraData; // passed when menu was opened by call to open()
112+
// console.log("beforeOpen", event, ui, event.originalEvent.type);
111113
$(document)
112114
// .contextmenu("replaceMenu", [{title: "aaa"}, {title: "bbb"}])
113115
// .contextmenu("replaceMenu", "#options2")
@@ -158,7 +160,7 @@
158160

159161
$("#triggerPopup").click(function(){
160162
// Trigger popup menu on the first target element
161-
$(document).contextmenu("open", $(".hasmenu:first"));
163+
$(document).contextmenu("open", $(".hasmenu:first"), {foo: "bar"});
162164
setTimeout(function(){
163165
$(document).contextmenu("close");
164166
}, 2000);

jquery.ui-contextmenu.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919

2020
$.widget("moogle.contextmenu", {
21-
version: "1.2.5-1",
21+
version: "1.3.0-1",
2222
options: {
2323
delegate: null, // selector
2424
hide: { effect: "fadeOut", duration: "fast"},
@@ -160,7 +160,7 @@
160160
var opts = this.options,
161161
posOption = opts.position,
162162
self = this,
163-
ui = {menu: this.$menu, target: $(event.target)};
163+
ui = {menu: this.$menu, target: $(event.target), extraData: event.extraData};
164164
this.currentTarget = event.target;
165165
// Prevent browser from opening the system context menu
166166
event.preventDefault();
@@ -248,7 +248,6 @@
248248
enableEntry: function(cmd, flag){
249249
this._getMenuEntry(cmd, true).toggleClass("ui-state-disabled", (flag === false));
250250
},
251-
/** Redefine the whole menu. */
252251
/** Return Menu element (UL). */
253252
getMenu: function(){
254253
return this.$menu;
@@ -258,10 +257,13 @@
258257
// return this.$menu && this.$menu.is(":visible");
259258
return !!this.$menu && !!this.currentTarget;
260259
},
261-
/** Open context menu on a specific target (must match options.delegate) */
262-
open: function(target){
260+
/** Open context menu on a specific target (must match options.delegate)
261+
* Optional `extraData` is passed to event handlers as `ui.extraData`.
262+
*/
263+
open: function(target, extraData){
263264
// Fake a 'contextmenu' event
264-
var e = jQuery.Event("contextmenu", {target: target.get(0)});
265+
extraData = extraData || {};
266+
var e = jQuery.Event("contextmenu", {target: target.get(0), extraData: extraData});
265267
return this.element.trigger(e);
266268
},
267269
/** Replace the menu altogether. */

jquery.ui-contextmenu.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ui-contextmenu",
3-
"version": "1.2.5-1",
3+
"version": "1.3.0-1",
44
"title": "jQuery UI context menu plugin",
55
"description": "Turn a jQuery UI Menu widget into a contextmenu.",
66
"keywords": [

ui-contextmenu.jquery.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ui-contextmenu",
3-
"version": "1.2.5-1",
3+
"version": "1.3.0-1",
44

55
"title": "jQuery UI context menu plugin",
66
"description": "Turn a jQuery UI Menu widget into a contextmenu.",

0 commit comments

Comments
 (0)