npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jquery-simulate-ext

v1.3.0

Published

jQuery Simulate - extended. Simulating complex user interaction based on the jQuery Simulate plugin.

Downloads

14,390

Readme

jQuery Simulate Extended Plugin 1.3.0

The jQuery Simulate Extended plugin (a.k.a. jquery-simulate-ext) provides methods for simulating complex user interactions based on the jQuery.simulate() plugin. The plugin provides simulation of:

  • Drag & Drop
  • Key Sequences
  • Key Combinations

Additionally, the extended plugin includes documentation and fixes for the jQuery simulate plugin itself.

Table of Contents

Usage

To use the jquery-simulate-ext plugin, you need to include (in the given order):

  1. bililiteRange.js [if you want to use jquery.simulate.key-sequence.js or jquery.simulate.key-combo.js]
  2. jquery-x.y.z.js
  3. jquery.simulate.js
  4. jquery.simulate.ext.js
  5. jquery.simulate.drag-n-drop.js [if you want to simulate drag & drop]
  6. jquery.simulate.key-sequence.js [if you want to simulate key sequences]
  7. jquery.simulate.key-combo.js [if you want to simulate key combos]

The simulations are executed by calling the .simulate() function on a jQuery object. The simulation is then executed on all elements in the collection of the jQuery object (unless otherwise noted).

  • Synopsis: .simulate(type, options)
  • Parameters:
    • type {String}: The type of the interaction to be simulated.
    • options {Object}: An option object containing the options for the action to be simulated.

The types of simulated actions are:

  • From the jquery-simulate plugin:
    • Mouse Events: "mousemove", "mousedown", "mouseup", "click", dblclick", "mouseover", "mouseout", "mouseenter", "mouseleave", "contextmenu"
    • Key Events: "keydown", "keyup", "keypress"
    • "focus"
    • "blur"
  • From the jquery-simulate-ext plugin:
    • Drag & Drop: "drag-n-drop", "drag", "drop"
    • "key-sequence"
    • "key-combo"

Example:

$('input[name="testInput"]').simulate("key-sequence", {sequence: "asdf"});

Demos:

The demos folder contains a demonstration of most of the features of the simulate extended plugins.

Live demos can be found at jsFiddle and JS Bin where you can also play around with the plugin:

  • http://jsfiddle.net/Ignitor/Psjhf/embedded/result/ (jsFiddle)
  • http://jsbin.com/inalax/25/edit#live (JS Bin)

Documentation

The options and events for the different interactions are described in the files in the doc folder:

Global Options:

Options recognized by all jquery-simulate-ext plugins:

  • eventProps {Object}: Defines custom properties which will be attached to the simulated events.
    Note: Trying to define default properties of events (e.g. type, bubbles, altKey, etc.) using this option might not work since those properties are typically read-only.
    Note: The dispatchEvent() function of all major browsers will remove custom properties from the event. Therefore, the jquery.simulate.js from the jquery-simulate-ext repository contains an option to use jQuery.trigger() instead of the native dispatchEvent(). This causes that the simulated event will only trigger event handlers attached using the same jQuery instance and not handlers attached using addEventListener() or using another versions of jQuery (see http://bugs.jquery.com/ticket/11047 for more information), but it's the only way to allow the custom properties to be used in the event handlers. To activate this option, define jQueryTrigger: true in the eventProps option object. For example:

    $('#mySimulateTarget').simulate('key-sequence', {
    	sequence: "my simulated text",
    	eventProps: {
    		jQueryTrigger: true,
    		simulatedEvent: true
    	}
    });

    Tip: As the example shows, this allows to flag the simulated events, which allows to distinguish the simulated events from real events in the event handlers. See issue #12 for more information.

Requirements

The plugin requires

Compatibility

The plugins have been successfully tested with jQuery 1.7.2, 1.10.2, 2.1.0 and jQuery Simulate @485ca7192a, @25938de206. However, they should be compatible with other/future versions as well.

Quirk Detection

There are some issues with bililiteRange and some browsers. To workaround these issues, jquery-simulate-ext performs some quirk detections when the document is ready. Those quirk detections also contain temporary DOM manipulations. If you don't want those DOM manipulations to take place, you can disable the quirk detection by setting the flag ext_disableQuirkDetection in the jQuery.simulate object after jquery.simulate.js has been loaded but before any jquery-simulate-ext plugin is loaded. For example:

<!-- ... -->
<script type="text/javascript" src="../libs/jquery.simulate.js"></script>
<script type="text/javascript">$.simulate.ext_disableQuirkDetection = true;</script>
<script type="text/javascript" src="../src/jquery.simulate.ext.js"></script>
<script type="text/javascript" src="../src/jquery.simulate.key-sequence.js"></script>
<!-- ... -->

For more information, see issue #9.

Licensing

Copyright © 2014 Jochen Ulrich https://github.com/j-ulrich/jquery-simulate-ext

Licensed under the MIT license.