mbraak / jqTree

Tree widget for jQuery
https://mbraak.github.io/jqTree/
Apache License 2.0
1.02k stars 177 forks source link

add pageX and pageY properties to tree.contextmenu #29

Closed ghost closed 12 years ago

ghost commented 12 years ago

Hi, I've implemented (quite easily) lightweight but flexible context menu builder based on A Simple Good Looking Context Menu by Joe Walnes, https://github.com/joewalnes/jquery-simple-context-menu. I'm beginner in JavaScript, nevertheless, the only problem was to get the mouse pointer coordinates within bind tree.contextmenu event. After series of unsuccessful attempts I finally added to the core script tree.jquery.js (from download package) 2 strings after string #1014:

event.page_x = e.pageX; event.page_y = e.pageY;

and it works!

Is it possible to add these properties in future releases?

mbraak commented 12 years ago

This sounds like a good idea. I will look into it.

ghost commented 12 years ago

Thank you! jqTree is the first solution after half of dozen attempted by, where I have no troubles except the subj. It is really lightweight but powerful and clearly documented. And it's reliable!

mbraak commented 12 years ago

The tree.contextmenu event has a the property _clickevent, which is the original contextmenu event.

This property is not documented yet, but I think you could use it to get the mouse coordinates: event.click_event.pageX; event.click_event.pageY;

Please let me know if this works.

ghost commented 12 years ago

Awesome! It works :) Maybe you will add this in the docs? Thank you again.

ghost commented 12 years ago

Quick test:

xubuntu 12.04 FF, Chromium, Opera - ok Win 7 IE9, FF, Opera, Safari, Google Chrome - ok Win XP FF, Google Chrome - ok all browsers are up-to-date. XP IE8 - context menu script fail... no comments

mbraak commented 12 years ago

This is now added to the docs in the dev branch.

ghost commented 12 years ago

Hi, Marco! Eventually I've got Context Menu working with jqTree. It can create, edit and delete folders and works without significant bugs :). Unfortunately, at the moment I have no skills in AJAX, so it interacts with server with page reload. (Todo!)

I'm not sure whether my code ready to be published on GitHub, so may I ask you, if you'll find a time, have a look at it here: http://dl.dropbox.com/u/21872445/jqtree_contextmenu.zip There are 4 files in zip archive:

I guess, documents tree + context menu is interested not just me. Suggestions and criticism are welcome!

Eugene

mbraak commented 12 years ago

I will have a look at it.

mbraak commented 12 years ago

Hello Eugene,

It looks very nice.

I would certainly add an html example, because not everybody uses php.

Marco

ghost commented 12 years ago

Hi Marco, I really satisfied that result of my work is quite acceptable :)

What about html, I was hurrying to share working ContextMenu and just copy-pasted an existing code, so I would appreciate if you'll write an html example.

One string that I've commented to access browser context menu (jquery.contextmenu.js, str ## 88, 89):

menu.css({zIndex:1000001, left:left, top:top}); //.bind('contextmenu', function() { return false; });

should be uncommented in production version:

menu.css({zIndex:1000001, left:left, top:top}) .bind('contextmenu', function() { return false; });

Eugene

mbraak commented 12 years ago

Eugene,

I can't possibly do that. I really don't have the time available.

Marco