'mouseover.dc' is just a namespaced event. It allows you to unbind
only that specific mouseover later by calling $boxes.unbind
('mouseover.dc'). It's a useful way of keeping track of events.


On Apr 10, 4:17 pm, Lwangaman <donjohn.f...@gmail.com> wrote:
> Ok first of all thanks for taking interest!
> Then, I've tried going through your code and applying it, and I have a
> few questions:
> -- Besides the mouseover.dc that I didn't get either...
> -- I'm supposing that $boxes would be a variable where all the
> checkboxes that are applicable have been stored previously? Yet, if
> you build it as a "plugin" you have no way of defining which
> checkboxes are to comprised (unless this functionality is built into
> the plugin using data passed through parameters, I suppose).
> -- Then I don't quite understand what the "mousedown" is being bound
> to. In my example (which was not built as a plugin, but I suppose a
> plugin or defined function would be even better because it's much more
> flexible and anyone can download it and use it), the "mousedown" was
> being bound to all the cells that had checkboxes in them, and I was
> determining that through the class I had given them
> "mychkbox" (because I didn't want some of the checkboxes included,
> since they do not have an active state; the table has names,
> addresses, emails, and those that don't have an email have an inactive
> checkbox). I was also trying to follow cross-browser.com's way of
> listening to the mousedown on the cell containing the checkbox rather
> than on the checkbox itself, making the whole click-drag thing a lot
> more user-friendly.
>
> On 10 Apr, 20:36, jay <jay.ab...@gmail.com> wrote:
>
> > Just curious.. What is the difference between mouseover.dc and
> > mouseover?
>
> > On Apr 10, 1:44 pm, Ricardo <ricardob...@gmail.com> wrote:
>
> > > This (untested) is how I envision the code for that:
>
> > > $.fn.dragCheck = function(){
> > >   //this == the current jQuery element
> > >   return this.each(function(){
>
> > >     //this == current element in the loop (table etc)
> > >     $(this).bind('mousedown', function(e){
>
> > >         //don't do anything if you didn't click a checkbox
> > >         if ( !$(e.target).is(':checkbox') )
> > >              return true;
>
> > >         //get the clicked checkbox state
> > >         isChecked = e.target.checked;
> > >         //apply it to all other checkboxes on mouseover
> > >         $boxes.bind('mouseover.dc', function(){
> > >             this.checked = isChecked;
> > >         });
>
> > >     }).bind('mouseup', function(e){
> > >         //cancel the mouseover action
> > >         $boxes.unbind('mouseover.dc');
> > >     });
>
> > > };
>
> > > $('#table1').dragCheck();
>
> > > cheers,
> > > - ricardo
>
> > > On 9 abr, 17:15, Lwangaman <donjohn.f...@gmail.com> wrote:
>
> > > > Ok I resolved the "cannot assign to a function result" problem by
> > > > putting the value assignment into a "function(){}":
>
> > > > 48  $("td.mychkbox").each(
> > > > 49    function(){
> > > > 50      $(this).bind(
> > > > 51        "mouseover",
> > > > 52        function(){
> > > > 53          if (gCheckedValue != null){
> > > > 54            var eccomi = this;
> > > > 55            var eccoti = $(eccomi).find("input:checkbox");
> > > > 56*           function(){$(eccoti).attr("checked") = gCheckedValue;}
> > > > 57          }
> > > > 58        });
> > > > 59      });
>
> > > > Now I don't get any errors, but the event assignments don't seem to be
> > > > working together correctly...
> > > > Basically what's supposed to happen is this:
> > > > 1 - "onclick" event of the checkboxes is canceled since the clicking
> > > > and dragging is being assigned to the table cells that contain them
> > > > 2 - the table cells themselves don't actually have on "onclick" event,
> > > > because the value is given to the checkboxes with the "onmousedown"
> > > > and especially the "onmouseover" event.
> > > > 3 - "onmousedown" gives the variable "gCheckedValue" a value, either
> > > > of "true" or of "false" (depending on the actual state of the
> > > > checkbox, so if it is unchecked it will get checked and vice-versa),
> > > > and "onmouseup" empties "gCheckedValue" of any value. So as long as
> > > > the mouse is down, "gCheckedValue" has a value to give to any of the
> > > > checkboxes with the "onmouseover" event, but as soon as the mouse
> > > > button is released it no longer has a value so the "onmouseover" event
> > > > will no longer effect any of the checkboxes until the mousebutton is
> > > > pressed again.
>
> > > > So the value of "gCheckedValue" is set in the "mousedown" event, and
> > > > is transmitted in the "mouseover" event.
>
> > > > And yet the code doesn't seem to be working correctly. The current
> > > > value of the cell is detected correctly (I've gotten it through an
> > > > alert), it's contrary is correctly set in "gCheckedValue" (I've gotten
> > > > that through an alert too), but the new value is not being set in the
> > > > checkbox... In fact click sets no value, click and hold sets no value,
> > > > click and drag (mouseover the other checkboxes / cells) set no
> > > > value...
>
> > > > On 9 Apr, 14:23, Lwangaman <donjohn.f...@gmail.com> wrote:
>
> > > > > I thought I'd undertake the endeavour of translating into jquery the
> > > > > neat little "click-n-drag checkboxes" functionality of cross-
> > > > > browser.com's X-library. This functionality allows for multiple
> > > > > checkbox selection or de-selection by simply clicking on one of them
> > > > > and then dragging the mouse over the others.
>
> > > > > I began mentioning this in another post, but I figured that perhaps a
> > > > > new post with the right title would be better. Rather than re-post all
> > > > > the code though, here's a reference to the message where the full code
> > > > > of both the X-library functions and my attempted translation of them
> > > > > is posted:
>
> > > > >http://groups.google.com/group/jquery-en/msg/0f38d747d97cf701
>
> > > > > I doesn't quite seem to work though, none of my checkboxes are getting
> > > > > selected either on click or on drag. Any javascript - jquery experts
> > > > > have any ideas on what needs to be perfected?
>
> > > > > When I run it in Internet Explorer, the debugger gives me this
> > > > > message:
> > > > > "Cannnot assign to a function result"
>
> > > > > and it refers to line 56, which should be the one that sets the
> > > > > selection:
>
> > > > > 48  $("td.mychkbox").each(
> > > > > 49    function(){
> > > > > 50      $(this).bind(
> > > > > 51        "mouseover",
> > > > > 52        function(){
> > > > > 53          if (gCheckedValue != null){
> > > > > 54            var eccomi = this;
> > > > > 55            var eccoti = $(eccomi).find("input:checkbox");
> > > > > 56*           $(eccoti).attr("checked") = gCheckedValue;
> > > > > 57          }
> > > > > 58        });
> > > > > 59      });- Hide quoted text -
>
> > > - Show quoted text -

Reply via email to