javascriptmvc 3.0.0.pre15
Sign up to get free protection for your applications and to get access to all the features.
- 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);
|