How can I hook a double click event from an ExtJs RowBody? - javascript

I am using an Ext.grid.plugin.RowExpander which uses Ext.grid.feature.RowBody as the base for toggling. The grid has a double click listener that opens a window. The problem is that double clicking on the RowBody does not fire the double click event on the grid and I cannot even find how to hook the event.

I was dumb and did not read the documentation for Ext.grid.feature.RowBody. It clearly says that the feature exposes three "additional events on the gridview" including rowbodydblclick. There is still some difficulty in knowing which row in the grid or more importantly which record the RowBody that trigger the event was part of.

Related

FullCalendar v3.9.0, event on top gets referenced onclick foreach event on same day

We have founds ourselves facing a issue with our implemented fullCaldendar, onclick of any event occuring the same date...it will always open the first event of that particular day.
If I for example click on event 'Andreas Karlsson', the event for 'Alexander Wikman' appears.
I'm totally new with fullCalendar and this was implemented by a developer no longer available. So I would really appriciate any help. What do I look for that makes every event unique?

Remove expand event of Business Process Flow

I want to remove expand event of my business process flow. I want to achieve that because I do not want my BPF to expand at all which is their nature by default.
I am using Classic UI/Web Refresh, dynamics CRM version 8.2.
Below are the screenshot from where i remove these expand events than my logic works fine but as soon as i try to use Jquery or JavaScript to remove these events it does not work. I have tries using off event of Jquery or removeEventListener of JavaScript, but they do not work.
The Element from where I want to remove expand Event Listener
The Expand event listener:

Kendo UI scheduler doesn't allow for reliable cell click event handling

The docs say the scheduler change event is "Fired when the user selects a cell or event in the scheduler."
Great. The problem is that event is also fired on browser window resize. My app now thinks when the browser window is resized that the user clicked in a cell.
How do I distinguish between these two conditions?
Thought I had the answer here but no dice. No idea what causes the scheduler to fire the change event on resizing. I am showing it in a Marionette JS view. Maybe that has something to do with it? Not sure. It shouldn't.
I know it's all wired correctly because the calendar works properly when clicked - correct views are displayed based on whether a calendar slot has an event or is blank. But the change event fires when on window resize causing my app to fire view changes. A break point in the scheduler change event confirms it is firing on window resize.
Below I tried ditching the change event in favor onClick based on some prescriptions found in various posts. Ugly code but it worked in Chrome. Unfortunately doesn't work in other browsers. Why is there simply no "onClick" event? I just looked at a competing scheduler product and it has one.
Chrome only solution: "e" below is the onClick event object:
//Get the element ID - the DOM ID of the thing that was clicked. You'll use it to
//dip into the scheduler data model to get the event specific data you're after.
var uid = e.toElement.parentElement.parentElement.attributes[2].nodeValue;
//Get a reference to the scheduler data model
var scheduler = $("#scheduler").data('kendoScheduler');
//Use the uid to find the event associated with the click action
var event = scheduler.occurrenceByUid(uid);
Here are the posts that helped formulate that Chrome solution:
Call Scheduler events from EventTemplate
Kendo UI scheduler doesn't allow for reliable cell click event handling
Problem with this obviously is that it doesn't work in other browsers. That uid value (e.toElement.parentElement.parentElement.attributes2.nodeValue) is in different places in different browsers. So this solution is a no go.
I have no idea how a product like this doesn't have an onClick event. Likely have to use a different calendar. Very frustrating.
The issue at hand is I am rendering this calendar in a Marionette js item view. when a scheduler cell item is clicked I take the user to a different view. But the event that is used by the scheduler to handle clicks, "change", also fires on browser window resize. So on a browser window resize my app takes the user to a different view. Not good. No work around.

javascript how to determine what is cancelling an event

I have jquery, bootstrap included in a page I'm writing. It's a complex page. The problem I'm having is with Internet Explorer not seeing mousedown event. Chrome and FF both see the event just fine but not IE.
I wrote a test page with the event and it worked just fine in IE. So my question is...
Is there a way through the developer tools to determine what is cancelling an event?
I have a suspicion that one of the many .js files I've included is cancelling the mousedown event and IE isn't seeing it anymore. Chrome and FF does though. So I'm not 100% that it's being cancelled but it's my only guess I can come up with.
Code is really irrelevant since it's all of jquery and bootstrap. However, I am playing with divs that are draggable and resizeable. That's why I need to use jquery. The bootstrap is used because I also have a wysiwyg editor on the page.
Please don't recommend click. I need mousedown. When the mouse is down the border around the draggable and resizeable div turns red and I have some code that selects that div to capture top, left, width, and height as it's being moved and resized.
If click was selected as the event, the user would have to click the div box first then click and hold to move it. That's not a user friendly interface.
Any help is greatly appreciated.
What do you exactly mean as cancel, .preventDefault() or .stopPropagation? If we are talking about preventDefault - you should still be able to add event listener to parent container and then see your event object - it might have some data to traceback. Alternative would to override jQuery .on method and see who actually subscribes to the event.
After little more thinking - add another listener BEFORE the malicious one, to do that insert document-ready handler with event binding right after jquery loading code. In your new mousedown handler try to override problematic method of the event.
UPDATE:
you should try to check all events attached to your element one by one. To do that - check this post jQuery find events handlers registered with an object
In short - try using jQuery._data( elem, "events" ); to see attached event listeners and inspect their code in your code base. After you find the reason it will be much easier to reach the desired functionality. Before that it is just a guesswork.

What is the advantage of using Kendo Mobile buttons instead of handling clicks?

I am developing a Kendo Mobile app and want to know what is the advantages of using a Kendo Mobile button instead of handling the same event using a regular jQuery click handler?
Some elements I don't want styled like the native Kendo buttons, but still want to handle the clicks. Also if programatically adding button functionality you have to make an additional call to $("#button").kendoMobileButton(); before handling the click.
The documentation does not give very much info on why Kendo Mobile buttons are to be used, besides the automatic binding and styling when already populated in a view, which is very rare in most of my cases.
Kendo widgets are highly touch optimized. if you create an HTML element with onclick event bound on it, and use on a touch device along with a Kendo button,(do this on a device. not on a browser or emulator) you will see the difference. 'Click' is a desktop event and Tap is the mobile event... Kendo button provides cross-platform compatible solution for handling user-initiated touch events which wont be available when you bind click event to normal html elements.
if you are using the Kendo framework and want HTML elements to capture taps, you can capture the Tap event . You can see more documentation here

Categories