Used the patch from Alexander as the basis for a rewrite of the IE change event logic...
[jquery.git] / test / delegatetest.html
index cf30d87..e3ebbfc 100644 (file)
     <head>\r
         <script src='../dist/jquery.js' type='text/javascript'></script>\r
         <style>\r
-            .red {\r
-                background-color: red;\r
-                border: solid 3px red;\r
-            }\r
+       .red {\r
+           background-color: red;\r
+           border: solid 3px red;\r
+       }\r
         </style>\r
     </head>\r
     <body>\r
         <h2>Change Tests</h2>\r
         <table>\r
-                <tr>\r
-                    <td>\r
-                        Change each:\r
-                    </td>\r
-                    <td>\r
-                        <select class='select_test'>\r
-                           <option value='one'>change me 1</option>\r
-                            <option value='two'>change me 2</option>\r
-                            <option value='three'>change me 3</option>\r
-                        </select>\r
-                    </td>\r
-                    <td>\r
-                        <select class='mselect_test' multiple="multiple">\r
-                           <option value='one'>change me 1</option>\r
-                            <option value='two'>change me 2</option>\r
-                            <option value='three'>change me 3</option>\r
-                        </select>\r
-                    </td>\r
-                    <td>\r
-                        <input type="checkbox" class="checkbox_test" name="mycheckbox" id="checkbox1"/>\r
-                        <label for="checkbox1">Checkbox 1 label</label><br/>\r
-                        <input type="checkbox" class="checkbox_test" name="mycheckbox" id="checkbox2"/>\r
-                        <label for="checkbox2">Checkbox 2 label</label>\r
-                    </td>\r
-                    <td>\r
-                        <input type="radio" class="radio_test" name="myradio" id="radio1"/>\r
-                        <label for="radio1">Radio 1 label</label><br/>\r
-                        <input type="radio" class="radio_test" name="myradio" id="radio2"/>\r
-                        <label for="radio2">Radio 2 label</label>\r
-                    </td>\r
-                    <td>\r
-                        <input class='test' value='' id='input' size='10' />\r
-                    </td>\r
-                    <td>\r
-                        <textarea rows='2'></textarea>\r
-                    </td>\r
-                    <td>$().bind('change')</td>\r
-                </tr>\r
-                <tr>\r
-                    <td>Results:</td>\r
-                    <td id='select' class="red">SELECT</td>\r
-                    <td id='mselect' class="red">MULTI</td>\r
-                    <td id='checkbox' class="red">CHECKBOX</td>\r
-                    <td id='radio' class="red">RADIO</td>\r
-                    <td id='text' class="red">TEXT</td>\r
-                    <td id='textarea' class="red">TEXTAREA</td>\r
-                    <td id='boundChange' class="red">DOCUMENT</td>\r
-                </tr>\r
+           <tr>\r
+               <td>\r
+               Change each:\r
+               </td>\r
+               <td>\r
+               <select class='select_test'>\r
+                   <option value='one'>change me 1</option>\r
+                   <option value='two'>change me 2</option>\r
+                   <option value='three'>change me 3</option>\r
+               </select>\r
+               </td>\r
+               <td>\r
+               <select class='mselect_test' multiple="multiple">\r
+                   <option value='one'>change me 1</option>\r
+                   <option value='two'>change me 2</option>\r
+                   <option value='three'>change me 3</option>\r
+               </select>\r
+               </td>\r
+               <td>\r
+               <input type="checkbox" class="checkbox_test" name="mycheckbox" id="checkbox1"/>\r
+               <label for="checkbox1">Checkbox 1</label><br/>\r
+               <input type="checkbox" class="checkbox_test" name="mycheckbox" id="checkbox2"/>\r
+               <label for="checkbox2">Checkbox 2</label>\r
+               <input type="checkbox" class="checkbox_test" name="mycheckbox" id="checkbox3" disabled="disabled"/>\r
+               <label for="checkbox3">Checkbox 3</label>\r
+               </td>\r
+               </td>\r
+               </td>\r
+               <td>\r
+               <input type="radio" class="radio_test" name="myradio" id="radio1"/>\r
+               <label for="radio1">Radio1</label><br/>\r
+               <input type="radio" class="radio_test" name="myradio" id="radio2"/>\r
+               <label for="radio2">Radio2</label>\r
+               <input type="radio" class="radio_test" name="myradio" id="radio3" disabled="disabled"/>\r
+               <label for="radio3">Radio3</label>\r
+               </td>\r
+               <td>\r
+               <input class='test' value='' id='input' size='10' />\r
+               <input class='test' value='test' id='input2' size='10' readonly="readonly" />\r
+               </td>\r
+               <td>\r
+               <textarea rows='2'></textarea>\r
+               </td>\r
+               <td>$(document).bind('change')</td>\r
+           </tr>\r
+           <tr>\r
+               <td>Live:</td>\r
+               <td id='select' class="red">SELECT</td>\r
+               <td id='mselect' class="red">MULTI</td>\r
+               <td id='checkbox' class="red">CHECKBOX</td>\r
+               <td id='radio' class="red">RADIO</td>\r
+               <td id='text' class="red">TEXT</td>\r
+               <td id='textarea' class="red">TEXTAREA</td>\r
+               <td id='boundChange' class="red">DOCUMENT</td>\r
+           </tr>\r
+           <tr>\r
+               <td>Bind:</td>\r
+               <td id='selectbind' class="red">SELECT</td>\r
+               <td id='mselectbind' class="red">MULTI</td>\r
+               <td id='checkboxbind' class="red">CHECKBOX</td>\r
+               <td id='radiobind' class="red">RADIO</td>\r
+               <td id='textbind' class="red">TEXT</td>\r
+               <td id='textareabind' class="red">TEXTAREA</td>\r
+           </tr>\r
         </table>\r
         <h2>Submit Tests</h2>\r
         <table>\r
-            <tr>\r
-                <td>\r
-                    Submit each:\r
-                </td>\r
-                <td>\r
-                    <form action="" id="text_submit">\r
-                        <input class='test' type='text' value='Key Return To Submit'/>\r
-                    </form>\r
-                </td>\r
-                <td>\r
-                    <form action="" id="password_submit">\r
-                        <input class='test' type='password' value=''/>\r
-                    </form>\r
-                </td>\r
-                <td>\r
-                    <form action="" id="submit_submit">\r
-                        <input type='submit' value="Click Me To Submit" />\r
-                    </form>\r
-                </td>\r
-                <td>$().bind('submit')</td>\r
-            </tr>\r
-            <tr>\r
-                    <td>Results:</td>\r
-                    <td id='textSubmit' class="red">TEXT</td>\r
-                    <td id='passwordSubmit' class="red">PASSWORD</td>\r
-                    <td id='submitSubmit' class="red">BUTTON</td>\r
-                    <td id='boundSubmit' class="red">DOCUMENT</td>\r
-            </tr>\r
+       <tr>\r
+           <td>\r
+               Submit each:\r
+           </td>\r
+           <td>\r
+               <form action="" id="text_submit">\r
+               <input class='test' type='text' value='Key Return To Submit'/>\r
+               </form>\r
+           </td>\r
+           <td>\r
+               <form action="" id="password_submit">\r
+               <input class='test' type='password' value=''/>\r
+               </form>\r
+           </td>\r
+           <td>\r
+               <form action="" id="submit_submit">\r
+               <input type='submit' value="Click Me To Submit" />\r
+               </form>\r
+           </td>\r
+           <td>$(document).bind('submit')</td>\r
+       </tr>\r
+       <tr>\r
+               <td>Results:</td>\r
+               <td id='textSubmit' class="red">TEXT</td>\r
+               <td id='passwordSubmit' class="red">PASSWORD</td>\r
+               <td id='submitSubmit' class="red">BUTTON</td>\r
+               <td id='boundSubmit' class="red">DOCUMENT</td>\r
+       </tr>\r
         </table>\r
-        \r
+\r
+       <ul id="log"></ul>\r
 \r
         <script type='text/javascript'>\r
-            makeChangeFunc = function(id, prevent){\r
-                return function(e){\r
-                    if(prevent)\r
-                        e.preventDefault();\r
-                    $(id).css("backgroundColor","green").css("border","solid 3px green");\r
-                    setTimeout(function(){\r
-                        $(id).css("backgroundColor","");\r
-                    }, 700)\r
-                }\r
-            }\r
-            \r
-            $(".select_test").live("change",makeChangeFunc("#select"))\r
-            $(".mselect_test").live("change",makeChangeFunc("#mselect"))\r
-            $(".checkbox_test").live("change",makeChangeFunc("#checkbox"))\r
-            $(".radio_test").live("change",makeChangeFunc("#radio"))\r
-            $('textarea').live('change', makeChangeFunc("#textarea"))\r
-            $('#input').live('change', makeChangeFunc("#text"))\r
-            $(document).bind('change', makeChangeFunc("#boundChange"))\r
-            \r
-            $("#text_submit").live("submit", makeChangeFunc("#textSubmit", true) )\r
-            $("#password_submit").live("submit", makeChangeFunc("#passwordSubmit", true) )\r
-            $("#submit_submit").live("submit", makeChangeFunc("#submitSubmit", true) )\r
-            $(document).bind('submit', makeChangeFunc("#boundSubmit"))\r
-            \r
+       jQuery.fn.addChangeTest = function( id, prevent ) {\r
+               return this.bind("change", function(e){\r
+                       jQuery(id + "bind").blink();\r
+               }).live("change", function(e){\r
+                       if ( prevent ) {\r
+                               e.preventDefault();\r
+                       }\r
+\r
+                       jQuery(id).blink();\r
+               });\r
+       };\r
+\r
+       jQuery.fn.addSubmitTest = function( id, prevent ) {\r
+               return this.live("submit", function(e){\r
+                       if ( prevent ) {\r
+                               e.preventDefault();\r
+                       }\r
+\r
+                       jQuery(id).blink();\r
+               });\r
+       };\r
+\r
+       jQuery.fn.blink = function(){\r
+               return this.css("backgroundColor","green").css("border","solid 3px green").delay(700).queue(function(next){\r
+                       jQuery(this).css("backgroundColor","");\r
+                       next();\r
+               });\r
+       };\r
+       \r
+       $(".select_test").addChangeTest("#select");\r
+       $(".mselect_test").addChangeTest("#mselect");\r
+       $(".checkbox_test").addChangeTest("#checkbox");\r
+       $(".radio_test").addChangeTest("#radio");\r
+       $('textarea').addChangeTest("#textarea");\r
+       $('#input').addChangeTest("#text");\r
+       $(document).bind("change", function(){\r
+               jQuery("#boundChange").blink();\r
+       });\r
+       \r
+       $("#text_submit").addSubmitTest("#textSubmit", true);\r
+       $("#password_submit").addSubmitTest("#passwordSubmit", true);\r
+       $("#submit_submit").addSubmitTest("#submitSubmit", true);\r
+       $(document).bind("submit", function(){\r
+               jQuery("#boundSubmit").blink();\r
+       });\r
+       \r
         </script>\r
     </body>\r
 </html>\r