javascriptmvc 3.0.0.pre15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/README.markdown +15 -0
- data/Rakefile +17 -0
- data/VERSION +1 -0
- data/bin/jmvc-build +4 -0
- data/bin/jmvc-gen +4 -0
- data/bin/jmvc-get +4 -0
- data/bin/jmvc-init +4 -0
- data/bin/jmvc-update +4 -0
- data/lib/javascriptmvc.rb +97 -0
- data/lib/javascriptmvc/documentjs/README +0 -0
- data/lib/javascriptmvc/documentjs/add.js +76 -0
- data/lib/javascriptmvc/documentjs/application.js +285 -0
- data/lib/javascriptmvc/documentjs/attribute.js +61 -0
- data/lib/javascriptmvc/documentjs/baseclass.js +537 -0
- data/lib/javascriptmvc/documentjs/class.js +141 -0
- data/lib/javascriptmvc/documentjs/constructor.js +145 -0
- data/lib/javascriptmvc/documentjs/directives.js +394 -0
- data/lib/javascriptmvc/documentjs/distance.js +49 -0
- data/lib/javascriptmvc/documentjs/document +21 -0
- data/lib/javascriptmvc/documentjs/documentjs.js +76 -0
- data/lib/javascriptmvc/documentjs/file.js +55 -0
- data/lib/javascriptmvc/documentjs/function.js +112 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/close.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/download.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/fav-off.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/fav-on.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/favicon.ico +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/logo.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/pre.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-icons_222222_256x240.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-icons_2e83ff_256x240.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-icons_454545_256x240.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-icons_888888_256x240.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/images/video.png +0 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/production.js +552 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/style.css +354 -0
- data/lib/javascriptmvc/documentjs/jmvcdoc/summary.ejs +134 -0
- data/lib/javascriptmvc/documentjs/json.js +172 -0
- data/lib/javascriptmvc/documentjs/page.js +107 -0
- data/lib/javascriptmvc/documentjs/pair.js +302 -0
- data/lib/javascriptmvc/documentjs/prototype.js +13 -0
- data/lib/javascriptmvc/documentjs/scripts/build.js +6 -0
- data/lib/javascriptmvc/documentjs/static.js +25 -0
- data/lib/javascriptmvc/documentjs/test/docs/Something.json +1 -0
- data/lib/javascriptmvc/documentjs/test/docs/searchData.json +1 -0
- data/lib/javascriptmvc/documentjs/test/something.js +8 -0
- data/lib/javascriptmvc/documentjs/test/test.html +6 -0
- data/lib/javascriptmvc/documentjs/test_doc.html +1 -0
- data/lib/javascriptmvc/documentjs/update +5 -0
- data/lib/javascriptmvc/funcunit/README +17 -0
- data/lib/javascriptmvc/funcunit/autosuggest/auto_suggest.js +495 -0
- data/lib/javascriptmvc/funcunit/autosuggest/autosuggest.css +24 -0
- data/lib/javascriptmvc/funcunit/autosuggest/autosuggest.html +26 -0
- data/lib/javascriptmvc/funcunit/autosuggest/autosuggest.js +17 -0
- data/lib/javascriptmvc/funcunit/autosuggest/autosuggest_test.js +14 -0
- data/lib/javascriptmvc/funcunit/autosuggest/funcunit.html +15 -0
- data/lib/javascriptmvc/funcunit/build.js +54 -0
- data/lib/javascriptmvc/funcunit/drivers/selenium.js +129 -0
- data/lib/javascriptmvc/funcunit/drivers/standard.js +169 -0
- data/lib/javascriptmvc/funcunit/envjs +13 -0
- data/lib/javascriptmvc/funcunit/envjs.bat +28 -0
- data/lib/javascriptmvc/funcunit/funcunit.html +20 -0
- data/lib/javascriptmvc/funcunit/funcunit.js +1509 -0
- data/lib/javascriptmvc/funcunit/java/selenium-java-client-driver.jar +0 -0
- data/lib/javascriptmvc/funcunit/java/selenium-server.jar +0 -0
- data/lib/javascriptmvc/funcunit/qunit.html +22 -0
- data/lib/javascriptmvc/funcunit/qunit/qunit.css +119 -0
- data/lib/javascriptmvc/funcunit/qunit/qunit.js +1124 -0
- data/lib/javascriptmvc/funcunit/qunit/rhino/rhino.js +24 -0
- data/lib/javascriptmvc/funcunit/qunit/test/qunit.html +18 -0
- data/lib/javascriptmvc/funcunit/qunit/test/test.js +7 -0
- data/lib/javascriptmvc/funcunit/resources/funcunit.js +31 -0
- data/lib/javascriptmvc/funcunit/resources/jquery.js +6378 -0
- data/lib/javascriptmvc/funcunit/resources/json.js +201 -0
- data/lib/javascriptmvc/funcunit/resources/selenium_start.js +43 -0
- data/lib/javascriptmvc/funcunit/scripts/run.js +36 -0
- data/lib/javascriptmvc/funcunit/scripts/test.js +55 -0
- data/lib/javascriptmvc/funcunit/settings.js +10 -0
- data/lib/javascriptmvc/funcunit/synthetic/browsers.js +151 -0
- data/lib/javascriptmvc/funcunit/synthetic/demo.html +150 -0
- data/lib/javascriptmvc/funcunit/synthetic/demo/record.js +254 -0
- data/lib/javascriptmvc/funcunit/synthetic/drag/drag.html +41 -0
- data/lib/javascriptmvc/funcunit/synthetic/drag/drag.js +268 -0
- data/lib/javascriptmvc/funcunit/synthetic/drag/qunit.html +20 -0
- data/lib/javascriptmvc/funcunit/synthetic/drag/test/qunit/drag_test.js +195 -0
- data/lib/javascriptmvc/funcunit/synthetic/drag/test/qunit/qunit.js +7 -0
- data/lib/javascriptmvc/funcunit/synthetic/key.js +832 -0
- data/lib/javascriptmvc/funcunit/synthetic/mouse.js +291 -0
- data/lib/javascriptmvc/funcunit/synthetic/qunit.html +22 -0
- data/lib/javascriptmvc/funcunit/synthetic/recorder.html +303 -0
- data/lib/javascriptmvc/funcunit/synthetic/synthetic.html +85 -0
- data/lib/javascriptmvc/funcunit/synthetic/synthetic.js +796 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/qunit/key_test.js +391 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/qunit/mouse_test.js +233 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/qunit/qunit.js +6 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/qunit/synthetic_test.js +91 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/submit.html +29 -0
- data/lib/javascriptmvc/funcunit/synthetic/test/submitted.html +3 -0
- data/lib/javascriptmvc/funcunit/template.html +18 -0
- data/lib/javascriptmvc/funcunit/test/drag.html +63 -0
- data/lib/javascriptmvc/funcunit/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/funcunit/test/funcunit/funcunit_test.js +87 -0
- data/lib/javascriptmvc/funcunit/test/funcunit/open_test.js +28 -0
- data/lib/javascriptmvc/funcunit/test/funcunit/protodrag_test.js +13 -0
- data/lib/javascriptmvc/funcunit/test/funcunit/syn_test.js +41 -0
- data/lib/javascriptmvc/funcunit/test/jquery.event.drag.js +801 -0
- data/lib/javascriptmvc/funcunit/test/jquery.event.drop.js +439 -0
- data/lib/javascriptmvc/funcunit/test/jquery.js +6360 -0
- data/lib/javascriptmvc/funcunit/test/myapp.html +103 -0
- data/lib/javascriptmvc/funcunit/test/myotherapp.html +15 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/dragdrop.js +974 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/effects.js +1123 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/funcunit_test.js +20 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/myapp.html +63 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/prototype.js +4874 -0
- data/lib/javascriptmvc/funcunit/test/protodrag/scriptaculous.js +68 -0
- data/lib/javascriptmvc/funcunit/update +5 -0
- data/lib/javascriptmvc/jquery/README +24 -0
- data/lib/javascriptmvc/jquery/build.js +73 -0
- data/lib/javascriptmvc/jquery/class/class.html +109 -0
- data/lib/javascriptmvc/jquery/class/class.js +627 -0
- data/lib/javascriptmvc/jquery/class/qunit.html +15 -0
- data/lib/javascriptmvc/jquery/class/test/qunit/class_test.js +146 -0
- data/lib/javascriptmvc/jquery/class/test/qunit/qunit.js +5 -0
- data/lib/javascriptmvc/jquery/class/test/qunit/test.html +20 -0
- data/lib/javascriptmvc/jquery/controller/controller.html +89 -0
- data/lib/javascriptmvc/jquery/controller/controller.js +735 -0
- data/lib/javascriptmvc/jquery/controller/history/history.html +44 -0
- data/lib/javascriptmvc/jquery/controller/history/history.js +177 -0
- data/lib/javascriptmvc/jquery/controller/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/scripts/compress.js +6 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/scripts/docs.js +6 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/subscribe.html +56 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/subscribe.js +27 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/funcunit/subscribe_test.js +11 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/controller/subscribe/test/qunit/subscribe_test.js +4 -0
- data/lib/javascriptmvc/jquery/controller/test/qunit/controller_test.js +170 -0
- data/lib/javascriptmvc/jquery/controller/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/controller/view/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/controller/view/test/qunit/controller_view_test.js +15 -0
- data/lib/javascriptmvc/jquery/controller/view/test/qunit/qunit.js +6 -0
- data/lib/javascriptmvc/jquery/controller/view/test/qunit/views/init.micro +1 -0
- data/lib/javascriptmvc/jquery/controller/view/view.js +102 -0
- data/lib/javascriptmvc/jquery/dom/closest/closest.html +23 -0
- data/lib/javascriptmvc/jquery/dom/closest/closest.js +47 -0
- data/lib/javascriptmvc/jquery/dom/closest/funcunit.html +20 -0
- data/lib/javascriptmvc/jquery/dom/closest/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/dom/closest/scripts/compress.js +3 -0
- data/lib/javascriptmvc/jquery/dom/closest/scripts/doc.js +4 -0
- data/lib/javascriptmvc/jquery/dom/closest/scripts/test.js +55 -0
- data/lib/javascriptmvc/jquery/dom/closest/settings.js +40 -0
- data/lib/javascriptmvc/jquery/dom/closest/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/dom/closest/test/funcunit/tests/basic.js +11 -0
- data/lib/javascriptmvc/jquery/dom/closest/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/dom/closest/test/qunit/tests/basic.js +4 -0
- data/lib/javascriptmvc/jquery/dom/compare/compare.html +88 -0
- data/lib/javascriptmvc/jquery/dom/compare/compare.js +67 -0
- data/lib/javascriptmvc/jquery/dom/compare/qunit.html +20 -0
- data/lib/javascriptmvc/jquery/dom/compare/test/qunit/compare_test.js +19 -0
- data/lib/javascriptmvc/jquery/dom/compare/test/qunit/qunit.js +5 -0
- data/lib/javascriptmvc/jquery/dom/cookie/cookie.html +25 -0
- data/lib/javascriptmvc/jquery/dom/cookie/cookie.js +119 -0
- data/lib/javascriptmvc/jquery/dom/cookie/scripts/compress.js +6 -0
- data/lib/javascriptmvc/jquery/dom/cookie/scripts/doc.js +6 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/funcunit/cookie_test.js +11 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/funcunit/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/qunit/cookie_test.js +4 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/dom/cookie/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/cur_styles.html +71 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/cur_styles.js +120 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/test/qunit/curStyles.micro +3 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/test/qunit/cur_styles_test.js +22 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/test/qunit/outer.micro +0 -0
- data/lib/javascriptmvc/jquery/dom/cur_styles/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/curstyles.html +22 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/dimensions.html +132 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/dimensions.js +140 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/test/qunit/curStyles.micro +3 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/test/qunit/dimensions_test.js +8 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/test/qunit/outer.micro +0 -0
- data/lib/javascriptmvc/jquery/dom/dimensions/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/dom/dom.js +7 -0
- data/lib/javascriptmvc/jquery/dom/fixture/fixture.html +143 -0
- data/lib/javascriptmvc/jquery/dom/fixture/fixture.js +521 -0
- data/lib/javascriptmvc/jquery/dom/fixture/fixtures/messages.html +31 -0
- data/lib/javascriptmvc/jquery/dom/fixture/fixtures/test.json +3 -0
- data/lib/javascriptmvc/jquery/dom/fixture/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/dom/fixture/test/qunit/fixture_test.js +50 -0
- data/lib/javascriptmvc/jquery/dom/fixture/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/dom/form_params/form_params.html +57 -0
- data/lib/javascriptmvc/jquery/dom/form_params/form_params.js +106 -0
- data/lib/javascriptmvc/jquery/dom/form_params/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/dom/form_params/test/qunit/basics.micro +27 -0
- data/lib/javascriptmvc/jquery/dom/form_params/test/qunit/checkbox.micro +20 -0
- data/lib/javascriptmvc/jquery/dom/form_params/test/qunit/form_params_test.js +43 -0
- data/lib/javascriptmvc/jquery/dom/form_params/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/dom/form_params/test/qunit/truthy.micro +8 -0
- data/lib/javascriptmvc/jquery/dom/within/within.js +67 -0
- data/lib/javascriptmvc/jquery/error/background.png +0 -0
- data/lib/javascriptmvc/jquery/error/error.html +31 -0
- data/lib/javascriptmvc/jquery/error/error.js +227 -0
- data/lib/javascriptmvc/jquery/error/setup.js +4 -0
- data/lib/javascriptmvc/jquery/error/test/test.html +23 -0
- data/lib/javascriptmvc/jquery/error/test/test.js +4 -0
- data/lib/javascriptmvc/jquery/event/default/compress.js +7 -0
- data/lib/javascriptmvc/jquery/event/default/default.html +85 -0
- data/lib/javascriptmvc/jquery/event/default/default.js +193 -0
- data/lib/javascriptmvc/jquery/event/default/defaultjquery.html +117 -0
- data/lib/javascriptmvc/jquery/event/default/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/event/default/test/qunit/default_test.js +104 -0
- data/lib/javascriptmvc/jquery/event/default/test/qunit/html.micro +8 -0
- data/lib/javascriptmvc/jquery/event/default/test/qunit/qunit.js +6 -0
- data/lib/javascriptmvc/jquery/event/default/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/event/destroyed/destroyed.html +24 -0
- data/lib/javascriptmvc/jquery/event/destroyed/destroyed.js +40 -0
- data/lib/javascriptmvc/jquery/event/destroyed/destroyed_menu.html +96 -0
- data/lib/javascriptmvc/jquery/event/destroyed/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/destroyed/test/qunit/destroyed_test.js +12 -0
- data/lib/javascriptmvc/jquery/event/destroyed/test/qunit/qunit.js +6 -0
- data/lib/javascriptmvc/jquery/event/drag/drag.html +105 -0
- data/lib/javascriptmvc/jquery/event/drag/drag.js +466 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/limit.html +74 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/limit.js +56 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/scripts/compress.js +6 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/scripts/doc.js +6 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/funcunit/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/funcunit/limit_test.js +11 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/qunit/limit_test.js +4 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/event/drag/limit/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/event/drag/qunit.html +16 -0
- data/lib/javascriptmvc/jquery/event/drag/scroll/scroll.js +120 -0
- data/lib/javascriptmvc/jquery/event/drag/test/qunit/drag_test.js +130 -0
- data/lib/javascriptmvc/jquery/event/drag/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/event/drop/drop.html +74 -0
- data/lib/javascriptmvc/jquery/event/drop/drop.js +301 -0
- data/lib/javascriptmvc/jquery/event/event.js +6 -0
- data/lib/javascriptmvc/jquery/event/hashchange/hashchange.js +245 -0
- data/lib/javascriptmvc/jquery/event/hover/compress.js +7 -0
- data/lib/javascriptmvc/jquery/event/hover/hover.html +56 -0
- data/lib/javascriptmvc/jquery/event/hover/hover.js +219 -0
- data/lib/javascriptmvc/jquery/event/hover/qunit.html +16 -0
- data/lib/javascriptmvc/jquery/event/hover/test/qunit/hover_test.js +55 -0
- data/lib/javascriptmvc/jquery/event/hover/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/event/livehack/compress.js +7 -0
- data/lib/javascriptmvc/jquery/event/livehack/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/livehack/livehack.html +25 -0
- data/lib/javascriptmvc/jquery/event/livehack/livehack.js +167 -0
- data/lib/javascriptmvc/jquery/event/offline/funcunit.html +20 -0
- data/lib/javascriptmvc/jquery/event/offline/offline.html +26 -0
- data/lib/javascriptmvc/jquery/event/offline/offline.js +36 -0
- data/lib/javascriptmvc/jquery/event/offline/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/event/offline/scripts/compress.js +3 -0
- data/lib/javascriptmvc/jquery/event/offline/scripts/doc.js +4 -0
- data/lib/javascriptmvc/jquery/event/offline/settings.js +41 -0
- data/lib/javascriptmvc/jquery/event/offline/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/event/offline/test/funcunit/tests/basic.js +11 -0
- data/lib/javascriptmvc/jquery/event/offline/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/event/offline/test/qunit/tests/basic.js +4 -0
- data/lib/javascriptmvc/jquery/event/resize/funcunit.html +20 -0
- data/lib/javascriptmvc/jquery/event/resize/qunit.html +22 -0
- data/lib/javascriptmvc/jquery/event/resize/resize.html +23 -0
- data/lib/javascriptmvc/jquery/event/resize/resize.js +50 -0
- data/lib/javascriptmvc/jquery/event/resize/scripts/compress.js +3 -0
- data/lib/javascriptmvc/jquery/event/resize/scripts/doc.js +4 -0
- data/lib/javascriptmvc/jquery/event/resize/scripts/test.js +55 -0
- data/lib/javascriptmvc/jquery/event/resize/settings.js +40 -0
- data/lib/javascriptmvc/jquery/event/resize/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/event/resize/test/funcunit/tests/basic.js +11 -0
- data/lib/javascriptmvc/jquery/event/resize/test/qunit/qunit.js +4 -0
- data/lib/javascriptmvc/jquery/event/resize/test/qunit/tests/basic.js +4 -0
- data/lib/javascriptmvc/jquery/event/select/scripts/compress.js +6 -0
- data/lib/javascriptmvc/jquery/event/select/scripts/doc.js +6 -0
- data/lib/javascriptmvc/jquery/event/select/select.html +63 -0
- data/lib/javascriptmvc/jquery/event/select/select.js +65 -0
- data/lib/javascriptmvc/jquery/event/select/test/funcunit/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/select/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/event/select/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/event/select/test/funcunit/select_test.js +11 -0
- data/lib/javascriptmvc/jquery/event/select/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/event/select/test/qunit/qunit.js +5 -0
- data/lib/javascriptmvc/jquery/event/select/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/event/select/test/qunit/select_test.js +4 -0
- data/lib/javascriptmvc/jquery/generate/app +23 -0
- data/lib/javascriptmvc/jquery/generate/controller +21 -0
- data/lib/javascriptmvc/jquery/generate/model +26 -0
- data/lib/javascriptmvc/jquery/generate/page +20 -0
- data/lib/javascriptmvc/jquery/generate/plugin +20 -0
- data/lib/javascriptmvc/jquery/generate/scaffold +23 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/(application_name).css.ejs +4 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/(application_name).html.ejs +23 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/(application_name).js.ejs +21 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/controllers/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/docs/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/fixtures/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/funcunit.html.ejs +15 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/models/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/qunit.html.ejs +20 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/resources/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/scripts/build.js.ejs +6 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/scripts/clean.js.ejs +6 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/scripts/docs.js.ejs +4 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/test/funcunit/(application_name)_test.js.ejs +9 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/test/funcunit/funcunit.js.ejs +3 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/test/qunit/(application_name)_test.js.ejs +5 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/test/qunit/qunit.js.ejs +3 -0
- data/lib/javascriptmvc/jquery/generate/templates/app/views/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/controller/controllers/(underscore)_controller.js.ejs +12 -0
- data/lib/javascriptmvc/jquery/generate/templates/model/fixtures.link +1 -0
- data/lib/javascriptmvc/jquery/generate/templates/model/models.link +1 -0
- data/lib/javascriptmvc/jquery/generate/templates/model/test/qunit.link +1 -0
- data/lib/javascriptmvc/jquery/generate/templates/page.ejs +23 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/(application_name).html.ejs +23 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/(application_name).js.ejs +3 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/fixtures/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/funcunit.html.ejs +15 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/qunit.html.ejs +20 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/resources/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/scripts.link +1 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/test.link +1 -0
- data/lib/javascriptmvc/jquery/generate/templates/plugin/views/.ignore +0 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/controllers/(underscore)_controller.js.ejs +96 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/fixtures/(plural).json.get.ejs +3 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/models/(underscore).js.ejs +83 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/test/funcunit/(underscore)_controller_test.js.ejs +63 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/test/qunit/(underscore)_test.js.ejs +45 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/views/(underscore)/edit.ejs.ejs +10 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/views/(underscore)/init.ejs.ejs +26 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/views/(underscore)/list.ejs.ejs +5 -0
- data/lib/javascriptmvc/jquery/generate/templates/scaffold/views/(underscore)/show.ejs.ejs +10 -0
- data/lib/javascriptmvc/jquery/jquery.js +6360 -0
- data/lib/javascriptmvc/jquery/lang/json/json.html +25 -0
- data/lib/javascriptmvc/jquery/lang/json/json.js +201 -0
- data/lib/javascriptmvc/jquery/lang/json/scripts/compress.js +6 -0
- data/lib/javascriptmvc/jquery/lang/json/scripts/doc.js +6 -0
- data/lib/javascriptmvc/jquery/lang/json/test/funcunit/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/lang/json/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/lang/json/test/funcunit/json_test.js +11 -0
- data/lib/javascriptmvc/jquery/lang/json/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/lang/json/test/qunit/json_test.js +4 -0
- data/lib/javascriptmvc/jquery/lang/json/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/lang/json/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/lang/json/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/lang/lang.html +27 -0
- data/lib/javascriptmvc/jquery/lang/lang.js +104 -0
- data/lib/javascriptmvc/jquery/lang/openajax/openajax.js +202 -0
- data/lib/javascriptmvc/jquery/lang/rsplit/rsplit.js +31 -0
- data/lib/javascriptmvc/jquery/lang/vector/vector.js +167 -0
- data/lib/javascriptmvc/jquery/model/associations/associations.html +25 -0
- data/lib/javascriptmvc/jquery/model/associations/associations.js +46 -0
- data/lib/javascriptmvc/jquery/model/associations/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/model/associations/test/qunit/associations_test.js +51 -0
- data/lib/javascriptmvc/jquery/model/associations/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/model/associations/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/model/backup/backup.js +82 -0
- data/lib/javascriptmvc/jquery/model/json_rest/json_rest.js +91 -0
- data/lib/javascriptmvc/jquery/model/list/list.js +148 -0
- data/lib/javascriptmvc/jquery/model/list/qunit.html +16 -0
- data/lib/javascriptmvc/jquery/model/list/test/qunit/list_test.js +58 -0
- data/lib/javascriptmvc/jquery/model/list/test/qunit/qunit.js +6 -0
- data/lib/javascriptmvc/jquery/model/list/test/qunit/run.js +0 -0
- data/lib/javascriptmvc/jquery/model/model.js +537 -0
- data/lib/javascriptmvc/jquery/model/qunit.html +17 -0
- data/lib/javascriptmvc/jquery/model/store/store.js +66 -0
- data/lib/javascriptmvc/jquery/model/test/qunit/model_test.js +71 -0
- data/lib/javascriptmvc/jquery/model/test/qunit/qunit.js +5 -0
- data/lib/javascriptmvc/jquery/qunit.html +15 -0
- data/lib/javascriptmvc/jquery/test/funcunit/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/test/funcunit/jquerytest_test.js +11 -0
- data/lib/javascriptmvc/jquery/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/test/qunit/qunit.js +22 -0
- data/lib/javascriptmvc/jquery/update +5 -0
- data/lib/javascriptmvc/jquery/view/compress.js +7 -0
- data/lib/javascriptmvc/jquery/view/ejs/ejs.html +25 -0
- data/lib/javascriptmvc/jquery/view/ejs/ejs.js +489 -0
- data/lib/javascriptmvc/jquery/view/ejs/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/funcunit/ejs_test.js +11 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/qunit/ejs_test.js +4 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/view/ejs/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/view/fulljslint.js +3774 -0
- data/lib/javascriptmvc/jquery/view/helpers/helpers.js +338 -0
- data/lib/javascriptmvc/jquery/view/jaml/compress.js +7 -0
- data/lib/javascriptmvc/jquery/view/jaml/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/jaml/jaml.html +25 -0
- data/lib/javascriptmvc/jquery/view/jaml/jaml.js +73 -0
- data/lib/javascriptmvc/jquery/view/jaml/node.js +149 -0
- data/lib/javascriptmvc/jquery/view/jaml/template.js +131 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/funcunit/jaml_test.js +11 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/qunit/jaml_test.js +4 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/view/jaml/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/view/micro/compress.js +7 -0
- data/lib/javascriptmvc/jquery/view/micro/funcunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/micro/micro.html +25 -0
- data/lib/javascriptmvc/jquery/view/micro/micro.js +57 -0
- data/lib/javascriptmvc/jquery/view/micro/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/view/micro/test/funcunit/micro_test.js +11 -0
- data/lib/javascriptmvc/jquery/view/micro/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/view/micro/test/qunit/micro_test.js +4 -0
- data/lib/javascriptmvc/jquery/view/micro/test/qunit/qunit.html +21 -0
- data/lib/javascriptmvc/jquery/view/micro/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/view/micro/test/qunit/run.js +2 -0
- data/lib/javascriptmvc/jquery/view/qunit.html +16 -0
- data/lib/javascriptmvc/jquery/view/test/compression/compression.html +12 -0
- data/lib/javascriptmvc/jquery/view/test/compression/compression.js +11 -0
- data/lib/javascriptmvc/jquery/view/test/compression/run.js +36 -0
- data/lib/javascriptmvc/jquery/view/test/funcunit/funcunit.js +3 -0
- data/lib/javascriptmvc/jquery/view/test/funcunit/run.js +10 -0
- data/lib/javascriptmvc/jquery/view/test/funcunit/view_test.js +11 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/nested_plugin.ejs +1 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/plugin.ejs +1 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/qunit.js +9 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/template.ejs +1 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/template.jaml +3 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/template.micro +1 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/template.tmpl +1 -0
- data/lib/javascriptmvc/jquery/view/test/qunit/view_test.js +24 -0
- data/lib/javascriptmvc/jquery/view/tmpl/tmpl.js +150 -0
- data/lib/javascriptmvc/jquery/view/view.html +65 -0
- data/lib/javascriptmvc/jquery/view/view.js +296 -0
- data/lib/javascriptmvc/js +56 -0
- data/lib/javascriptmvc/js.bat +57 -0
- data/lib/javascriptmvc/steal/README +26 -0
- data/lib/javascriptmvc/steal/build/apps/apps.js +208 -0
- data/lib/javascriptmvc/steal/build/apps/test.js +4 -0
- data/lib/javascriptmvc/steal/build/build.js +281 -0
- data/lib/javascriptmvc/steal/build/pluginify.js +73 -0
- data/lib/javascriptmvc/steal/build/scripts/compiler.jar +0 -0
- data/lib/javascriptmvc/steal/build/scripts/scripts.js +155 -0
- data/lib/javascriptmvc/steal/build/styles/cssmin.js +17 -0
- data/lib/javascriptmvc/steal/build/styles/styles.js +84 -0
- data/lib/javascriptmvc/steal/build/test/basicpage.html +6 -0
- data/lib/javascriptmvc/steal/build/test/basicproduction.js +1 -0
- data/lib/javascriptmvc/steal/build/test/basicsource.js +6 -0
- data/lib/javascriptmvc/steal/build/test/css/css/css1.css +1 -0
- data/lib/javascriptmvc/steal/build/test/css/css/justin.png +0 -0
- data/lib/javascriptmvc/steal/build/test/css/css2.css +5 -0
- data/lib/javascriptmvc/steal/build/test/css/page.html +9 -0
- data/lib/javascriptmvc/steal/build/test/css/production.css +1 -0
- data/lib/javascriptmvc/steal/build/test/css/test.js +7 -0
- data/lib/javascriptmvc/steal/build/test/css/upload.PNG +0 -0
- data/lib/javascriptmvc/steal/build/test/foreign.html +6 -0
- data/lib/javascriptmvc/steal/build/test/foreign.js +2 -0
- data/lib/javascriptmvc/steal/build/test/removecode.js +11 -0
- data/lib/javascriptmvc/steal/build/test/run.js +57 -0
- data/lib/javascriptmvc/steal/build/test/stealpage.html +10 -0
- data/lib/javascriptmvc/steal/build/test/stealprodpage.html +10 -0
- data/lib/javascriptmvc/steal/build/test/test.js +3 -0
- data/lib/javascriptmvc/steal/buildjs +21 -0
- data/lib/javascriptmvc/steal/clean/beautify.js +1108 -0
- data/lib/javascriptmvc/steal/clean/clean.js +179 -0
- data/lib/javascriptmvc/steal/clean/jslint.js +5662 -0
- data/lib/javascriptmvc/steal/clean/test.js +7 -0
- data/lib/javascriptmvc/steal/cleanjs +5 -0
- data/lib/javascriptmvc/steal/coffee/coffee-script.js +9 -0
- data/lib/javascriptmvc/steal/coffee/coffee.js +56 -0
- data/lib/javascriptmvc/steal/dev/dev.js +83 -0
- data/lib/javascriptmvc/steal/end.js +1 -0
- data/lib/javascriptmvc/steal/generate/app +23 -0
- data/lib/javascriptmvc/steal/generate/ejs.js +470 -0
- data/lib/javascriptmvc/steal/generate/generate.js +211 -0
- data/lib/javascriptmvc/steal/generate/inflector.js +117 -0
- data/lib/javascriptmvc/steal/generate/system.js +33 -0
- data/lib/javascriptmvc/steal/generate/templates/app/(application_name).css.ejs +10 -0
- data/lib/javascriptmvc/steal/generate/templates/app/(application_name).html.ejs +18 -0
- data/lib/javascriptmvc/steal/generate/templates/app/(application_name).js.ejs +10 -0
- data/lib/javascriptmvc/steal/generate/templates/app/docs/.ignore +0 -0
- data/lib/javascriptmvc/steal/generate/templates/app/resources/.ignore +0 -0
- data/lib/javascriptmvc/steal/generate/templates/app/resources/example.coffee.ejs +5 -0
- data/lib/javascriptmvc/steal/generate/templates/app/resources/example.js.ejs +13 -0
- data/lib/javascriptmvc/steal/generate/templates/app/resources/example.less.ejs +9 -0
- data/lib/javascriptmvc/steal/generate/templates/app/scripts/build.js.ejs +6 -0
- data/lib/javascriptmvc/steal/generate/templates/app/scripts/clean.js.ejs +6 -0
- data/lib/javascriptmvc/steal/generate/templates/app/test/.ignore +0 -0
- data/lib/javascriptmvc/steal/generate/templates/page.ejs +23 -0
- data/lib/javascriptmvc/steal/generate/test/test.js +92 -0
- data/lib/javascriptmvc/steal/get/get.js +163 -0
- data/lib/javascriptmvc/steal/get/gets.json +10 -0
- data/lib/javascriptmvc/steal/get/getter.js +115 -0
- data/lib/javascriptmvc/steal/get/github.js +134 -0
- data/lib/javascriptmvc/steal/get/json.js +172 -0
- data/lib/javascriptmvc/steal/getjs +5 -0
- data/lib/javascriptmvc/steal/js +56 -0
- data/lib/javascriptmvc/steal/js.bat +57 -0
- data/lib/javascriptmvc/steal/less/less.js +117 -0
- data/lib/javascriptmvc/steal/less/less_engine.js +2529 -0
- data/lib/javascriptmvc/steal/rhino/blank.html +6 -0
- data/lib/javascriptmvc/steal/rhino/build.js +31 -0
- data/lib/javascriptmvc/steal/rhino/docs.js +68 -0
- data/lib/javascriptmvc/steal/rhino/empty.html +12 -0
- data/lib/javascriptmvc/steal/rhino/env.js +11537 -0
- data/lib/javascriptmvc/steal/rhino/file.js +299 -0
- data/lib/javascriptmvc/steal/rhino/js.jar +0 -0
- data/lib/javascriptmvc/steal/rhino/loader.js +8 -0
- data/lib/javascriptmvc/steal/rhino/prompt.js +49 -0
- data/lib/javascriptmvc/steal/rhino/steal.js +122 -0
- data/lib/javascriptmvc/steal/rhino/test.js +16 -0
- data/lib/javascriptmvc/steal/steal.js +1317 -0
- data/lib/javascriptmvc/steal/steal.production.js +23 -0
- data/lib/javascriptmvc/steal/test/absoluteurl.html +7 -0
- data/lib/javascriptmvc/steal/test/absoluteurl/absoluteurl.js +1 -0
- data/lib/javascriptmvc/steal/test/absoluteurl/alert.js +1 -0
- data/lib/javascriptmvc/steal/test/another/two.js +2 -0
- data/lib/javascriptmvc/steal/test/one/four.js +1 -0
- data/lib/javascriptmvc/steal/test/one/one.js +6 -0
- data/lib/javascriptmvc/steal/test/qunit/qunit.html +22 -0
- data/lib/javascriptmvc/steal/test/qunit/qunit.js +3 -0
- data/lib/javascriptmvc/steal/test/qunit/steal_test.js +197 -0
- data/lib/javascriptmvc/steal/test/run.js +12 -0
- data/lib/javascriptmvc/steal/test/steal.html +37 -0
- data/lib/javascriptmvc/steal/test/test.js +82 -0
- data/lib/javascriptmvc/steal/test/three.js +3 -0
- data/lib/javascriptmvc/steal/testing/test.html +20 -0
- data/lib/javascriptmvc/steal/testing/testing.js +48 -0
- data/lib/javascriptmvc/steal/update +5 -0
- metadata +622 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
|
2
|
+
"http://www.w3.org/TR/html4/strict.dtd">
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<title>drop</title>
|
|
6
|
+
<style type='text/css'>
|
|
7
|
+
.handle {
|
|
8
|
+
width: 100px;
|
|
9
|
+
height: 25px;
|
|
10
|
+
border: dashed 1px red;
|
|
11
|
+
cursor : pointer;
|
|
12
|
+
}
|
|
13
|
+
.dropout, .dropmove, .cancel {
|
|
14
|
+
width: 200px;
|
|
15
|
+
height: 50px;
|
|
16
|
+
border: dashed 1px green;
|
|
17
|
+
cursor : pointer;
|
|
18
|
+
background-color: white;
|
|
19
|
+
}
|
|
20
|
+
#dropout {
|
|
21
|
+
padding: 20px;
|
|
22
|
+
border: solid 1px blue;
|
|
23
|
+
}
|
|
24
|
+
.over {
|
|
25
|
+
background-color: yellow;
|
|
26
|
+
}
|
|
27
|
+
</style>
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div id='demo-html'>
|
|
31
|
+
<h2>Drop Demo</h2>
|
|
32
|
+
<div class='handle'>Drag Me</div>
|
|
33
|
+
<h2>Dropout/Dropover</h2>
|
|
34
|
+
<div id='dropout'>
|
|
35
|
+
<div class='dropout'></div>
|
|
36
|
+
<div class='dropout'></div>
|
|
37
|
+
</div>
|
|
38
|
+
<a href="javascript://" id='undelegate'>undelegate</a>
|
|
39
|
+
<h2>Dropmove/Dropon</h2>
|
|
40
|
+
<div class='dropmove'></div>
|
|
41
|
+
<span>Drop Count <span class='count'>0</span></span>
|
|
42
|
+
</div>
|
|
43
|
+
<script type='text/javascript'
|
|
44
|
+
src='../../../steal/steal.js?steal[app]=jquery/event/drop'>
|
|
45
|
+
</script>
|
|
46
|
+
<script type='text/javascript' id='demo-source'>
|
|
47
|
+
//make drags
|
|
48
|
+
$('.handle').live("draginit", function(){})
|
|
49
|
+
|
|
50
|
+
//add dropout/dropover
|
|
51
|
+
$('#dropout')
|
|
52
|
+
.delegate(".dropout","dropover", function(){ $(this).addClass('over') })
|
|
53
|
+
.delegate(".dropout","dropout", function(){ $(this).removeClass('over') })
|
|
54
|
+
.bind("dropover", function(){ $(this).addClass('over') })
|
|
55
|
+
.bind("dropout", function(){ $(this).removeClass('over') });
|
|
56
|
+
|
|
57
|
+
//turn off dropout/dropover
|
|
58
|
+
$("#undelegate").click(function(){
|
|
59
|
+
$('#dropout').undelegate(".dropout","dropover");
|
|
60
|
+
$('#dropout').undelegate(".dropout","dropout");
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
//add dropmove/dropon
|
|
64
|
+
var count = 0
|
|
65
|
+
$('.dropmove')
|
|
66
|
+
.bind('dropmove', function(){
|
|
67
|
+
$('.count').text(count++)
|
|
68
|
+
})
|
|
69
|
+
.bind('dropon', function(){
|
|
70
|
+
$(this).text("Dropped on!")
|
|
71
|
+
})
|
|
72
|
+
</script>
|
|
73
|
+
</body>
|
|
74
|
+
</html>
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
steal.plugins('jquery/event/drag','jquery/dom/within','jquery/dom/compare').then(function($){
|
|
2
|
+
var event = $.event,
|
|
3
|
+
callHanders = function(){
|
|
4
|
+
|
|
5
|
+
};
|
|
6
|
+
//somehow need to keep track of elements with selectors on them. When element is removed, somehow we need to know that
|
|
7
|
+
//
|
|
8
|
+
/**
|
|
9
|
+
* @add jQuery.event.special static
|
|
10
|
+
*/
|
|
11
|
+
var eventNames = [
|
|
12
|
+
/**
|
|
13
|
+
* @attribute dropover
|
|
14
|
+
* Called when a drag is first moved over this drop element.
|
|
15
|
+
* <p>Drop events are covered in more detail in [jQuery.Drop].</p>
|
|
16
|
+
*/
|
|
17
|
+
"dropover",
|
|
18
|
+
/**
|
|
19
|
+
* @attribute dropon
|
|
20
|
+
* Called when a drag is dropped on a drop element.
|
|
21
|
+
* <p>Drop events are covered in more detail in [jQuery.Drop].</p>
|
|
22
|
+
*/
|
|
23
|
+
"dropon",
|
|
24
|
+
/**
|
|
25
|
+
* @attribute dropout
|
|
26
|
+
* Called when a drag is moved out of this drop.
|
|
27
|
+
* <p>Drop events are covered in more detail in [jQuery.Drop].</p>
|
|
28
|
+
*/
|
|
29
|
+
"dropout",
|
|
30
|
+
/**
|
|
31
|
+
* @attribute dropinit
|
|
32
|
+
* Called when a drag motion starts and the drop elements are initialized.
|
|
33
|
+
* <p>Drop events are covered in more detail in [jQuery.Drop].</p>
|
|
34
|
+
*/
|
|
35
|
+
"dropinit",
|
|
36
|
+
/**
|
|
37
|
+
* @attribute dropmove
|
|
38
|
+
* Called repeatedly when a drag is moved over a drop.
|
|
39
|
+
* <p>Drop events are covered in more detail in [jQuery.Drop].</p>
|
|
40
|
+
*/
|
|
41
|
+
"dropmove",
|
|
42
|
+
/**
|
|
43
|
+
* @attribute dropend
|
|
44
|
+
* Called when the drag is done for this drop.
|
|
45
|
+
* <p>Drop events are covered in more detail in [jQuery.Drop].</p>
|
|
46
|
+
*/
|
|
47
|
+
"dropend"];
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @constructor jQuery.Drop
|
|
53
|
+
* @parent specialevents
|
|
54
|
+
* @plugin jquery/event/drop
|
|
55
|
+
* @download jquery/dist/jquery.event.drop.js
|
|
56
|
+
* @test jquery/event/drag/qunit.html
|
|
57
|
+
*
|
|
58
|
+
* Provides drop events as a special event to jQuery.
|
|
59
|
+
* By binding to a drop event, the your callback functions will be
|
|
60
|
+
* called during the corresponding phase of drag.
|
|
61
|
+
* <h2>Drop Events</h2>
|
|
62
|
+
* All drop events are called with the native event, an instance of drop, and the drag. Here are the available drop
|
|
63
|
+
* events:
|
|
64
|
+
* <ul>
|
|
65
|
+
* <li><code>dropinit</code> - the drag motion is started, drop positions are calculated.</li>
|
|
66
|
+
* <li><code>dropover</code> - a drag moves over a drop element, called once as the drop is dragged over the element.</li>
|
|
67
|
+
* <li><code>dropout</code> - a drag moves out of the drop element.</li>
|
|
68
|
+
* <li><code>dropmove</code> - a drag is moved over a drop element, called repeatedly as the element is moved.</li>
|
|
69
|
+
* <li><code>dropon</code> - a drag is released over a drop element.</li>
|
|
70
|
+
* <li><code>dropend</code> - the drag motion has completed.</li>
|
|
71
|
+
* </ul>
|
|
72
|
+
* <h2>Examples</h2>
|
|
73
|
+
* Here's how to listen for when a drag moves over a drop:
|
|
74
|
+
* @codestart
|
|
75
|
+
* $('.drop').live("dropover", function(ev, drop, drag){
|
|
76
|
+
* $(this).addClass("drop-over")
|
|
77
|
+
* })
|
|
78
|
+
* @codeend
|
|
79
|
+
* A bit more complex example:
|
|
80
|
+
* @demo jquery/event/drop/drop.html 1000
|
|
81
|
+
* @init
|
|
82
|
+
* The constructor is never called directly.
|
|
83
|
+
*/
|
|
84
|
+
$.Drop = function(callbacks, element){
|
|
85
|
+
jQuery.extend(this,callbacks);
|
|
86
|
+
this.element = element;
|
|
87
|
+
}
|
|
88
|
+
$.each(eventNames, function(){
|
|
89
|
+
event.special[this] = {
|
|
90
|
+
add: function( handleObj ) {
|
|
91
|
+
//add this element to the compiles list
|
|
92
|
+
var el = $(this), current = (el.data("dropEventCount") || 0);
|
|
93
|
+
el.data("dropEventCount", current+1 )
|
|
94
|
+
if(current==0){
|
|
95
|
+
$.Drop.addElement(this);
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
remove: function() {
|
|
99
|
+
var el = $(this), current = (el.data("dropEventCount") || 0);
|
|
100
|
+
el.data("dropEventCount", current-1 )
|
|
101
|
+
if(current<=1){
|
|
102
|
+
$.Drop.removeElement(this);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
})
|
|
107
|
+
$.extend($.Drop,{
|
|
108
|
+
lowerName: "drop",
|
|
109
|
+
_elements: [], //elements that are listening for drops
|
|
110
|
+
_responders: [], //potential drop points
|
|
111
|
+
last_active: [],
|
|
112
|
+
endName: "dropon",
|
|
113
|
+
addElement: function( el ) {
|
|
114
|
+
//check other elements
|
|
115
|
+
for(var i =0; i < this._elements.length ; i++ ){
|
|
116
|
+
if(el ==this._elements[i]) return;
|
|
117
|
+
}
|
|
118
|
+
this._elements.push(el);
|
|
119
|
+
},
|
|
120
|
+
removeElement: function( el ) {
|
|
121
|
+
for(var i =0; i < this._elements.length ; i++ ){
|
|
122
|
+
if(el == this._elements[i]){
|
|
123
|
+
this._elements.splice(i,1)
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
/**
|
|
129
|
+
* @hide
|
|
130
|
+
* For a list of affected drops, sorts them by which is deepest in the DOM first.
|
|
131
|
+
*/
|
|
132
|
+
sortByDeepestChild: function( a, b ) {
|
|
133
|
+
var compare = a.element.compare(b.element);
|
|
134
|
+
if(compare & 16 || compare & 4) return 1;
|
|
135
|
+
if(compare & 8 || compare & 2) return -1;
|
|
136
|
+
return 0;
|
|
137
|
+
},
|
|
138
|
+
/**
|
|
139
|
+
* @hide
|
|
140
|
+
* Tests if a drop is within the point.
|
|
141
|
+
*/
|
|
142
|
+
isAffected: function( point, moveable, responder ) {
|
|
143
|
+
return ((responder.element != moveable.element) && (responder.element.within(point[0], point[1], responder).length == 1));
|
|
144
|
+
},
|
|
145
|
+
/**
|
|
146
|
+
* @hide
|
|
147
|
+
* Calls dropout and sets last active to null
|
|
148
|
+
* @param {Object} drop
|
|
149
|
+
* @param {Object} drag
|
|
150
|
+
* @param {Object} event
|
|
151
|
+
*/
|
|
152
|
+
deactivate: function( responder, mover, event ) {
|
|
153
|
+
mover.out(event, responder)
|
|
154
|
+
responder.callHandlers(this.lowerName+'out',responder.element[0], event, mover)
|
|
155
|
+
},
|
|
156
|
+
/**
|
|
157
|
+
* @hide
|
|
158
|
+
* Calls dropover
|
|
159
|
+
* @param {Object} drop
|
|
160
|
+
* @param {Object} drag
|
|
161
|
+
* @param {Object} event
|
|
162
|
+
*/
|
|
163
|
+
activate: function( responder, mover, event ) { //this is where we should call over
|
|
164
|
+
mover.over(event, responder)
|
|
165
|
+
//this.last_active = responder;
|
|
166
|
+
responder.callHandlers(this.lowerName+'over',responder.element[0], event, mover);
|
|
167
|
+
},
|
|
168
|
+
move: function( responder, mover, event ) {
|
|
169
|
+
responder.callHandlers(this.lowerName+'move',responder.element[0], event, mover)
|
|
170
|
+
},
|
|
171
|
+
/**
|
|
172
|
+
* Gets all elements that are droppable, adds them
|
|
173
|
+
*/
|
|
174
|
+
compile: function( event, drag ) {
|
|
175
|
+
var el, drops, selector, sels;
|
|
176
|
+
this.last_active = [];
|
|
177
|
+
for(var i=0; i < this._elements.length; i++){ //for each element
|
|
178
|
+
el = this._elements[i]
|
|
179
|
+
var drops = $.event.findBySelector(el, eventNames)
|
|
180
|
+
|
|
181
|
+
for(selector in drops){ //find the selectors
|
|
182
|
+
sels = selector ? jQuery(selector, el) : [el];
|
|
183
|
+
for(var e= 0; e < sels.length; e++){ //for each found element, create a drop point
|
|
184
|
+
jQuery.removeData(sels[e],"offset");
|
|
185
|
+
this.add(sels[e], new this(drops[selector]), event, drag);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
},
|
|
191
|
+
add: function( element, callbacks, event, drag ) {
|
|
192
|
+
element = jQuery(element);
|
|
193
|
+
var responder = new $.Drop(callbacks, element);
|
|
194
|
+
responder.callHandlers(this.lowerName+'init', element[0], event, drag)
|
|
195
|
+
if(!responder._canceled){
|
|
196
|
+
this._responders.push(responder);
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
show: function( point, moveable, event ) {
|
|
200
|
+
var element = moveable.element;
|
|
201
|
+
if(!this._responders.length) return;
|
|
202
|
+
|
|
203
|
+
var respondable,
|
|
204
|
+
affected = [],
|
|
205
|
+
propagate = true,
|
|
206
|
+
i,j, la, toBeActivated, aff,
|
|
207
|
+
oldLastActive = this.last_active;
|
|
208
|
+
|
|
209
|
+
for(var d =0 ; d < this._responders.length; d++ ){
|
|
210
|
+
|
|
211
|
+
if(this.isAffected(point, moveable, this._responders[d])){
|
|
212
|
+
affected.push(this._responders[d]);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
affected.sort(this.sortByDeepestChild); //we should only trigger on lowest children
|
|
218
|
+
event.stopRespondPropagate = function(){
|
|
219
|
+
propagate = false;
|
|
220
|
+
}
|
|
221
|
+
//deactivate everything in last_active that isn't active
|
|
222
|
+
toBeActivated = affected.slice();
|
|
223
|
+
this.last_active = affected;
|
|
224
|
+
for (j = 0; j < oldLastActive.length; j++) {
|
|
225
|
+
la = oldLastActive[j]
|
|
226
|
+
i = 0;
|
|
227
|
+
while((aff = toBeActivated[i])){
|
|
228
|
+
if(la == aff){
|
|
229
|
+
toBeActivated.splice(i,1);break;
|
|
230
|
+
}else{
|
|
231
|
+
i++;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
if(!aff){
|
|
235
|
+
this.deactivate(la, moveable, event);
|
|
236
|
+
}
|
|
237
|
+
if(!propagate) return;
|
|
238
|
+
}
|
|
239
|
+
for(var i =0; i < toBeActivated.length; i++){
|
|
240
|
+
this.activate(toBeActivated[i], moveable, event);
|
|
241
|
+
if(!propagate) return;
|
|
242
|
+
}
|
|
243
|
+
//activate everything in affected that isn't in last_active
|
|
244
|
+
|
|
245
|
+
for (i = 0; i < affected.length; i++) {
|
|
246
|
+
this.move(affected[i], moveable, event);
|
|
247
|
+
|
|
248
|
+
if(!propagate) return;
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
end: function( event, moveable ) {
|
|
252
|
+
var responder, la;
|
|
253
|
+
for(var r =0; r<this._responders.length; r++){
|
|
254
|
+
this._responders[r].callHandlers(this.lowerName+'end', null, event, moveable);
|
|
255
|
+
}
|
|
256
|
+
//go through the actives ... if you are over one, call dropped on it
|
|
257
|
+
for(var i = 0; i < this.last_active.length; i++){
|
|
258
|
+
la = this.last_active[i]
|
|
259
|
+
if( this.isAffected(event.vector(), moveable, la) && la[this.endName]){
|
|
260
|
+
la.callHandlers(this.endName, null, event, moveable);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
this.clear();
|
|
266
|
+
},
|
|
267
|
+
/**
|
|
268
|
+
* Called after dragging has stopped.
|
|
269
|
+
* @hide
|
|
270
|
+
*/
|
|
271
|
+
clear: function() {
|
|
272
|
+
|
|
273
|
+
this._responders = [];
|
|
274
|
+
}
|
|
275
|
+
})
|
|
276
|
+
$.Drag.responder = $.Drop;
|
|
277
|
+
|
|
278
|
+
$.extend($.Drop.prototype,{
|
|
279
|
+
callHandlers: function( method, el, ev, drag ) {
|
|
280
|
+
var length = this[method] ? this[method].length : 0
|
|
281
|
+
for(var i =0; i < length; i++){
|
|
282
|
+
this[method][i].call(el || this.element[0], ev, this, drag)
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
/**
|
|
286
|
+
* Caches positions of draggable elements. This should be called in dropinit. For example:
|
|
287
|
+
* @codestart
|
|
288
|
+
* dropinit: function( el, ev, drop ) { drop.cache_position() }
|
|
289
|
+
* @codeend
|
|
290
|
+
*/
|
|
291
|
+
cache: function( value ) {
|
|
292
|
+
this._cache = value != null ? value : true;
|
|
293
|
+
},
|
|
294
|
+
/**
|
|
295
|
+
* Prevents this drop from being dropped on.
|
|
296
|
+
*/
|
|
297
|
+
cancel: function() {
|
|
298
|
+
this._canceled = true;
|
|
299
|
+
}
|
|
300
|
+
} )
|
|
301
|
+
});
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* jQuery hashchange event - v1.2 - 2/11/2010
|
|
3
|
+
* http://benalman.com/projects/jquery-hashchange-plugin/
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2010 "Cowboy" Ben Alman
|
|
6
|
+
* Dual licensed under the MIT and GPL licenses.
|
|
7
|
+
* http://benalman.com/about/license/
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
// Script: jQuery hashchange event
|
|
11
|
+
//
|
|
12
|
+
// *Version: 1.2, Last updated: 2/11/2010*
|
|
13
|
+
//
|
|
14
|
+
// Project Home - http://benalman.com/projects/jquery-hashchange-plugin/
|
|
15
|
+
// GitHub - http://github.com/cowboy/jquery-hashchange/
|
|
16
|
+
// Source - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.js
|
|
17
|
+
// (Minified) - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.min.js (1.1kb)
|
|
18
|
+
//
|
|
19
|
+
// About: License
|
|
20
|
+
//
|
|
21
|
+
// Copyright (c) 2010 "Cowboy" Ben Alman,
|
|
22
|
+
// Dual licensed under the MIT and GPL licenses.
|
|
23
|
+
// http://benalman.com/about/license/
|
|
24
|
+
//
|
|
25
|
+
// About: Examples
|
|
26
|
+
//
|
|
27
|
+
// This working example, complete with fully commented code, illustrate one way
|
|
28
|
+
// in which this plugin can be used.
|
|
29
|
+
//
|
|
30
|
+
// hashchange event - http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/
|
|
31
|
+
//
|
|
32
|
+
// About: Support and Testing
|
|
33
|
+
//
|
|
34
|
+
// Information about what version or versions of jQuery this plugin has been
|
|
35
|
+
// tested with, what browsers it has been tested in, and where the unit tests
|
|
36
|
+
// reside (so you can test it yourself).
|
|
37
|
+
//
|
|
38
|
+
// jQuery Versions - 1.2.6, 1.3.2, 1.4.1, 1.4.2
|
|
39
|
+
// Browsers Tested - Internet Explorer 6-8, Firefox 2-3.7, Safari 3-4, Chrome, Opera 9.6-10.1.
|
|
40
|
+
// Unit Tests - http://benalman.com/code/projects/jquery-hashchange/unit/
|
|
41
|
+
//
|
|
42
|
+
// About: Known issues
|
|
43
|
+
//
|
|
44
|
+
// While this jQuery hashchange event implementation is quite stable and robust,
|
|
45
|
+
// there are a few unfortunate browser bugs surrounding expected hashchange
|
|
46
|
+
// event-based behaviors, independent of any JavaScript window.onhashchange
|
|
47
|
+
// abstraction. See the following examples for more information:
|
|
48
|
+
//
|
|
49
|
+
// Chrome: Back Button - http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/
|
|
50
|
+
// Firefox: Remote XMLHttpRequest - http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/
|
|
51
|
+
// WebKit: Back Button in an Iframe - http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/
|
|
52
|
+
// Safari: Back Button from a different domain - http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/
|
|
53
|
+
//
|
|
54
|
+
// About: Release History
|
|
55
|
+
//
|
|
56
|
+
// 1.2 - (2/11/2010) Fixed a bug where coming back to a page using this plugin
|
|
57
|
+
// from a page on another domain would cause an error in Safari 4. Also,
|
|
58
|
+
// IE6/7 Iframe is now inserted after the body (this actually works),
|
|
59
|
+
// which prevents the page from scrolling when the event is first bound.
|
|
60
|
+
// Event can also now be bound before DOM ready, but it won't be usable
|
|
61
|
+
// before then in IE6/7.
|
|
62
|
+
// 1.1 - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug
|
|
63
|
+
// where browser version is incorrectly reported as 8.0, despite
|
|
64
|
+
// inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag.
|
|
65
|
+
// 1.0 - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special
|
|
66
|
+
// window.onhashchange functionality into a separate plugin for users
|
|
67
|
+
// who want just the basic event & back button support, without all the
|
|
68
|
+
// extra awesomeness that BBQ provides. This plugin will be included as
|
|
69
|
+
// part of jQuery BBQ, but also be available separately.
|
|
70
|
+
|
|
71
|
+
(function($,window,undefined){
|
|
72
|
+
'$:nomunge'; // Used by YUI compressor.
|
|
73
|
+
|
|
74
|
+
// Method / object references.
|
|
75
|
+
var fake_onhashchange,
|
|
76
|
+
jq_event_special = $.event.special,
|
|
77
|
+
|
|
78
|
+
// Reused strings.
|
|
79
|
+
str_location = 'location',
|
|
80
|
+
str_hashchange = 'hashchange',
|
|
81
|
+
str_href = 'href',
|
|
82
|
+
|
|
83
|
+
// IE6/7 specifically need some special love when it comes to back-button
|
|
84
|
+
// support, so let's do a little browser sniffing..
|
|
85
|
+
browser = $.browser,
|
|
86
|
+
mode = document.documentMode,
|
|
87
|
+
is_old_ie = browser.msie && ( mode === undefined || mode < 8 ),
|
|
88
|
+
|
|
89
|
+
// Does the browser support window.onhashchange? Test for IE version, since
|
|
90
|
+
// IE8 incorrectly reports this when in "IE7" or "IE8 Compatibility View"!
|
|
91
|
+
supports_onhashchange = 'on' + str_hashchange in window && !is_old_ie;
|
|
92
|
+
|
|
93
|
+
// Get location.hash (or what you'd expect location.hash to be) sans any
|
|
94
|
+
// leading #. Thanks for making this necessary, Firefox!
|
|
95
|
+
function get_fragment( url ) {
|
|
96
|
+
url = url || window[ str_location ][ str_href ];
|
|
97
|
+
return url.replace( /^[^#]*#?(.*)$/, '$1' );
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
// Property: jQuery.hashchangeDelay
|
|
101
|
+
//
|
|
102
|
+
// The numeric interval (in milliseconds) at which the <hashchange event>
|
|
103
|
+
// polling loop executes. Defaults to 100.
|
|
104
|
+
|
|
105
|
+
$[ str_hashchange + 'Delay' ] = 100;
|
|
106
|
+
|
|
107
|
+
// Event: hashchange event
|
|
108
|
+
//
|
|
109
|
+
// Fired when location.hash changes. In browsers that support it, the native
|
|
110
|
+
// window.onhashchange event is used (IE8, FF3.6), otherwise a polling loop is
|
|
111
|
+
// initialized, running every <jQuery.hashchangeDelay> milliseconds to see if
|
|
112
|
+
// the hash has changed. In IE 6 and 7, a hidden Iframe is created to allow
|
|
113
|
+
// the back button and hash-based history to work.
|
|
114
|
+
//
|
|
115
|
+
// Usage:
|
|
116
|
+
//
|
|
117
|
+
// > $(window).bind( 'hashchange', function(e) {
|
|
118
|
+
// > var hash = location.hash;
|
|
119
|
+
// > ...
|
|
120
|
+
// > });
|
|
121
|
+
//
|
|
122
|
+
// Additional Notes:
|
|
123
|
+
//
|
|
124
|
+
// * The polling loop and Iframe are not created until at least one callback
|
|
125
|
+
// is actually bound to 'hashchange'.
|
|
126
|
+
// * If you need the bound callback(s) to execute immediately, in cases where
|
|
127
|
+
// the page 'state' exists on page load (via bookmark or page refresh, for
|
|
128
|
+
// example) use $(window).trigger( 'hashchange' );
|
|
129
|
+
// * The event can be bound before DOM ready, but since it won't be usable
|
|
130
|
+
// before then in IE6/7 (due to the necessary Iframe), recommended usage is
|
|
131
|
+
// to bind it inside a $(document).ready() callback.
|
|
132
|
+
|
|
133
|
+
jq_event_special[ str_hashchange ] = $.extend( jq_event_special[ str_hashchange ], {
|
|
134
|
+
|
|
135
|
+
// Called only when the first 'hashchange' event is bound to window.
|
|
136
|
+
setup: function() {
|
|
137
|
+
// If window.onhashchange is supported natively, there's nothing to do..
|
|
138
|
+
if ( supports_onhashchange ) { return false; }
|
|
139
|
+
|
|
140
|
+
// Otherwise, we need to create our own. And we don't want to call this
|
|
141
|
+
// until the user binds to the event, just in case they never do, since it
|
|
142
|
+
// will create a polling loop and possibly even a hidden Iframe.
|
|
143
|
+
$( fake_onhashchange.start );
|
|
144
|
+
},
|
|
145
|
+
|
|
146
|
+
// Called only when the last 'hashchange' event is unbound from window.
|
|
147
|
+
teardown: function() {
|
|
148
|
+
// If window.onhashchange is supported natively, there's nothing to do..
|
|
149
|
+
if ( supports_onhashchange ) { return false; }
|
|
150
|
+
|
|
151
|
+
// Otherwise, we need to stop ours (if possible).
|
|
152
|
+
$( fake_onhashchange.stop );
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
// fake_onhashchange does all the work of triggering the window.onhashchange
|
|
158
|
+
// event for browsers that don't natively support it, including creating a
|
|
159
|
+
// polling loop to watch for hash changes and in IE 6/7 creating a hidden
|
|
160
|
+
// Iframe to enable back and forward.
|
|
161
|
+
fake_onhashchange = (function(){
|
|
162
|
+
var self = {},
|
|
163
|
+
timeout_id,
|
|
164
|
+
iframe,
|
|
165
|
+
set_history,
|
|
166
|
+
get_history;
|
|
167
|
+
|
|
168
|
+
// Initialize. In IE 6/7, creates a hidden Iframe for history handling.
|
|
169
|
+
function init(){
|
|
170
|
+
// Most browsers don't need special methods here..
|
|
171
|
+
set_history = get_history = function(val){ return val; };
|
|
172
|
+
|
|
173
|
+
// But IE6/7 do!
|
|
174
|
+
if ( is_old_ie ) {
|
|
175
|
+
|
|
176
|
+
// Create hidden Iframe after the end of the body to prevent initial
|
|
177
|
+
// page load from scrolling unnecessarily.
|
|
178
|
+
iframe = $('<iframe src="javascript:0"/>').hide().insertAfter( 'body' )[0].contentWindow;
|
|
179
|
+
|
|
180
|
+
// Get history by looking at the hidden Iframe's location.hash.
|
|
181
|
+
get_history = function() {
|
|
182
|
+
return get_fragment( iframe.document[ str_location ][ str_href ] );
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
// Set a new history item by opening and then closing the Iframe
|
|
186
|
+
// document, *then* setting its location.hash.
|
|
187
|
+
set_history = function( hash, history_hash ) {
|
|
188
|
+
if ( hash !== history_hash ) {
|
|
189
|
+
var doc = iframe.document;
|
|
190
|
+
doc.open().close();
|
|
191
|
+
doc[ str_location ].hash = '#' + hash;
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
// Set initial history.
|
|
196
|
+
set_history( get_fragment() );
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
// Start the polling loop.
|
|
201
|
+
self.start = function() {
|
|
202
|
+
// Polling loop is already running!
|
|
203
|
+
if ( timeout_id ) { return; }
|
|
204
|
+
|
|
205
|
+
// Remember the initial hash so it doesn't get triggered immediately.
|
|
206
|
+
var last_hash = get_fragment();
|
|
207
|
+
|
|
208
|
+
// Initialize if not yet initialized.
|
|
209
|
+
set_history || init();
|
|
210
|
+
|
|
211
|
+
// This polling loop checks every $.hashchangeDelay milliseconds to see if
|
|
212
|
+
// location.hash has changed, and triggers the 'hashchange' event on
|
|
213
|
+
// window when necessary.
|
|
214
|
+
if(!navigator.userAgent.match(/Rhino/))
|
|
215
|
+
(function loopy(){
|
|
216
|
+
var hash = get_fragment(),
|
|
217
|
+
history_hash = get_history( last_hash );
|
|
218
|
+
|
|
219
|
+
if ( hash !== last_hash ) {
|
|
220
|
+
set_history( last_hash = hash, history_hash );
|
|
221
|
+
|
|
222
|
+
$(window).trigger( str_hashchange );
|
|
223
|
+
|
|
224
|
+
} else if ( history_hash !== last_hash ) {
|
|
225
|
+
window[ str_location ][ str_href ] = window[ str_location ][ str_href ].replace( /#.*/, '' ) + '#' + history_hash;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
timeout_id = setTimeout( loopy, $[ str_hashchange + 'Delay' ] );
|
|
229
|
+
})();
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
// Stop the polling loop, but only if an IE6/7 Iframe wasn't created. In
|
|
233
|
+
// that case, even if there are no longer any bound event handlers, the
|
|
234
|
+
// polling loop is still necessary for back/next to work at all!
|
|
235
|
+
self.stop = function() {
|
|
236
|
+
if ( !iframe ) {
|
|
237
|
+
timeout_id && clearTimeout( timeout_id );
|
|
238
|
+
timeout_id = 0;
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
return self;
|
|
243
|
+
})();
|
|
244
|
+
|
|
245
|
+
})(jQuery,this);
|