Hi Lwangman,

Now that we know all your requirements, I rewrote it(again) to clean
it up :) Everything is commented so you know what's going on. Main
things changed is that you set the selector for the container, not the
the checkbox directly, so if the inputs are nested deeper inside
(inside a div in the TD i.e.) things will still work, and using a
class for the highlight (much cleaner, you set styles in the CSS like
it should be). Clearing the plugin or setting it again also resets the
highlights.

http://jsbin.com/opove

Less than 30 lines now, w/o comments.

cheers,
- ricardo

On Apr 14, 4:45 am, Lwangaman <donjohn.f...@gmail.com> wrote:
> Ok latest version I've included the possibility of adding a background
> color:http://jsbin.com/icena/edit
>
> The background color is specified as a second parameter in the
> function:
> $('table').dragCheck('td:not(.nono) :checkbox', 'pink')
>
> To clear the dragCheck:
> $('table').dragCheck('clear')
>
> On 13 Apr, 23:29, jscripter <pc88m...@gmail.com> wrote:
>
> > Here's what I'm shooting for:
>
> >http://jsbin.com/izoce/edit
>
> > It's basically the same code as found on cross-browser.com, but I've
> > added the cell highlighting.
>
> > Works under Firefox, Opera and Chrome. It should also work under IE,
> > but it doesn't seem to work when on the jsbin.com site. However, if
> > you just download it and run it from a local file it should work for
> > you.
>
> > The text selection bug is basically fixed. It is still possible to
> > select text if the mousedown event occurs in the right place between
> > cells. I don't think text selection is possible if the border width is
> > set to 0 (but then you also don't get a border.)
>
> > On Apr 13, 2:30 pm, Lwangaman <donjohn.f...@gmail.com> wrote:
>
> > > I think I've done it.
>
> > >http://jsbin.com/adixe/edit
>
> > > I have also left out the mouseleave event, and applied the mouseup to
> > > the whole document instead of to the table, that way even if I leave
> > > the table but still have the mouse button down, I don't lose the value
> > > in the variable. Only if I let go of the mouse button (on or off the
> > > table) do I reset the variable.
>
> > > @Ricardo and @jscripter: does this work good?
>
> > > On 13 Apr, 14:41, Lwangaman <donjohn.f...@gmail.com> wrote:
>
> > > > I tried working on it again and made a little progress... Now I got
> > > > parent and child selected correctly, but I don't have mouseover
> > > > working for some reason...
>
> > > >http://jsbin.com/avigi/edit
>
> > > > On 13 Apr, 02:43, Lwangaman <donjohn.f...@gmail.com> wrote:
>
> > > > > One more detail: mouseout should not take effect until mouseup.
> > > > > In fact, right now, if I click and begin to drag, then still holding
> > > > > the mouse button I leave the area, and still holding it come back over
> > > > > the cells, they no longer get checked / unchecked because mouseout has
> > > > > already kicked in. Instead it shouldn't kick in until I actually let
> > > > > go of the mouse button, and I could let go of it anywhere on the page
> > > > > I suppose, so I guess "mouseup" would have to be applied to the whole
> > > > > document.
>
> > > > > On 13 Apr, 02:33, Lwangaman <donjohn.f...@gmail.com> wrote:
>
> > > > > > I tried something along those lines...
>
> > > > > >http://jsbin.com/ehedu/edit
>
> > > > > > But I just don't have the hang of using "this" correctly and knowing
> > > > > > when to refer to dom elements as dom elements or as jquery 
> > > > > > objects...
>
> > > > > > The idea is to tie all events to the container of the checkboxes 
> > > > > > (i.e.
> > > > > > table cells), and not to the external container (table or ul list or
> > > > > > whatever), and yet be able to read and write the value of the
> > > > > > checkboxes...
>
> > > > > > On 13 Apr, 01:13, Lwangaman <donjohn.f...@gmail.com> wrote:
>
> > > > > > > Taking up jscripter's suggestion, I just noticed myself that 
> > > > > > > applying
> > > > > > > the mousedown and mouseover to the whole table keeps you from 
> > > > > > > being
> > > > > > > able to click on any links that may be contained in the table. For
> > > > > > > example my table has links in the header cells that when clicked
> > > > > > > reorder the table according to that column. Now I can no longer 
> > > > > > > click
> > > > > > > them...
> > > > > > > And, as jscripter says, in the X-Library the mousedown and 
> > > > > > > mouseover
> > > > > > > was applied to the cells containing the checkboxes and not to the
> > > > > > > checkboxes themselves, so that it was enough to click on the cells
> > > > > > > surrounding the checkboxes in order to get them checked / 
> > > > > > > unchecked.
>
> > > > > > > Ricardo do you think you could manage something like that? (I'm 
> > > > > > > only
> > > > > > > an apprentice and I don't have your expertice!)
>
> > > > > > > On 12 Apr, 22:31, jscripter <pc88m...@gmail.com> wrote:
>
> > > > > > > > Hey - this is great work - I just happened to be looking for 
> > > > > > > > this
> > > > > > > > functionality.
>
> > > > > > > > How would you apply what you have done here to re-writing the 
> > > > > > > > original
> > > > > > > > X-library code that uses TDs for the checkbox label?
>
> > > > > > > > Thanks!
>
> > > > > > > > On Apr 12, 2:04 pm, Ricardo <ricardob...@gmail.com> wrote:
>
> > > > > > > > > Sure! I have a few other plugins I also want to upload, I'll 
> > > > > > > > > do that.
>
> > > > > > > > > I took the time to rewrite it more carefully. No more binding/
> > > > > > > > > unbinding, a single var, all namespaced and bugs ironed out 
> > > > > > > > > (if you
> > > > > > > > > put the cursor away while holding the button, the mouseover 
> > > > > > > > > would
> > > > > > > > > remain active even after mouseup).
>
> > > > > > > > > The advantage of namespacing is you can easily remove all 
> > > > > > > > > event
> > > > > > > > > handlers. I included that in the plugin, in the example you 
> > > > > > > > > can use $
> > > > > > > > > ('ul').dragCheck(false) to disable it completely.
>
> > > > > > > > >http://jsbin.com/amoxi/edit
>
> > > > > > > > > cheers,
> > > > > > > > > - ricardo
>
> > > > > > > > > On Apr 12, 9:48 am, Lwangaman <donjohn.f...@gmail.com> wrote:
>
> > > > > > > > > > @Ricardo
> > > > > > > > > > Do you think it could be useful to add this to the jquery 
> > > > > > > > > > plugins at
> > > > > > > > > > plugins.jquery.com? I'd say it could be put under your name 
> > > > > > > > > > because
> > > > > > > > > > you did all the big work!
>
> > > > > > > > > > On 12 Apr, 14:35, Lwangaman <donjohn.f...@gmail.com> wrote:
>
> > > > > > > > > > > Ok that works better, I just changed "clicked.checked = 
> > > > > > > > > > > !isChecked" to
> > > > > > > > > > > "clicked.checked = isChecked":
>
> > > > > > > > > > >http://jsbin.com/idihi/edit
>
> > > > > > > > > > > On 12 Apr, 08:11, Ricardo <ricardob...@gmail.com> wrote:
>
> > > > > > > > > > > > The problem with your fix is that the event target for 
> > > > > > > > > > > > the mouseup is
> > > > > > > > > > > > not the same as the mousedown. You can resolve that by 
> > > > > > > > > > > > saving the
> > > > > > > > > > > > clicked checkbox in a var, and because of event order 
> > > > > > > > > > > > the change has
> > > > > > > > > > > > to be made on 'click' rather than mouseup.
>
> > > > > > > > > > > >http://jsbin.com/asizu/edit
>
> > > > > > > > > > > > Sorry for the bugs, this was written rather quickly, I 
> > > > > > > > > > > > hope it works
> > > > > > > > > > > > now :)
>
> > > > > > > > > > > > On Apr 11, 11:30 am, Lwangaman <donjohn.f...@gmail.com> 
> > > > > > > > > > > > wrote:
>
> > > > > > > > > > > > > Ok I tried to touch up the code a little to fix that, 
> > > > > > > > > > > > > here's my
> > > > > > > > > > > > > example:
>
> > > > > > > > > > > > >http://jsbin.com/iyubi/edit
>
> > > > > > > > > > > > > Now, with a single click, the value on mouseup is 
> > > > > > > > > > > > > reversed to keep it
> > > > > > > > > > > > > as it was with mousedown. But, when you do a drag, 
> > > > > > > > > > > > > the mouseup of the
> > > > > > > > > > > > > last checkbox is not canceled or reversed... I 
> > > > > > > > > > > > > suppose it would be
> > > > > > > > > > > > > enough to cancel $(this)'s mouseup, but how would you 
> > > > > > > > > > > > > refer to $(this)
> > > > > > > > > > > > > from within the $boxes.bind('mouseover')?
>
> > > > > > > > > > > > > On 11 Apr, 16:07, Lwangaman <donjohn.f...@gmail.com> 
> > > > > > > > > > > > > wrote:
>
> > > > > > > > > > > > > > Hmm, just noticed one problem though... A single 
> > > > > > > > > > > > > > click on a checkbox
> > > > > > > > > > > > > > is supposed to work too, but with this code as soon 
> > > > > > > > > > > > > > as you mouseup the
> > > > > > > > > > > > > > value goes back the other way... You have to drag 
> > > > > > > > > > > > > > off in order to keep
> > > > > > > > > > > > > > the value in there...
>
> > > > > > > > > > > > > > On 11 Apr, 06:21, Ricardo <ricardob...@gmail.com> 
> > > > > > > > > > > > > > wrote:
>
> > > > > > > > > > > > > > > I think you already got the .dc namespacing 
> > > > > > > > > > > > > > > thing, so: the mousedown
> > > > > > > > > > > > > > > is not being bound to the checkbox, but to the 
> > > > > > > > > > > > > > > container element (the
> > > > > > > > > > > > > > > table, or in my example below, the UL). When you 
> > > > > > > > > > > > > > > click a checkbox the
> > > > > > > > > > > > > > > mousedown event will bubble up to the container 
> > > > > > > > > > > > > > > and fire this handler.
>
> > > > > > > > > > > > > > > As I expected my code had some flaws a few typing 
> > > > > > > > > > > > > > > errors, see it fixed/
> > > > > > > > > > > > > > > working here:
>
> > > > > > > > > > > > > > >http://jsbin.com/edabo/edit
>
> > > > > > > > > > > > > > > I added the ability to specify a selector for the 
> > > > > > > > > > > > > > > checkboxes, that way
> > > > > > > > > > > > > > > you can skip the ones you don't want. In case 
> > > > > > > > > > > > > > > it's not provided all
> > > > > > > > > > > > > > > checkboxes are used by default.
>
> > > > > > > > > > > > > > > cheers,
> > > > > > > > > > > > > > > - ricardo
>
> > > > > > > > > > > > > > > On Apr 10, 8: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
>
> ...
>
> read more »

Reply via email to