So I see.
It would be cool if you could describe what you intend to do with this,
e.g. simply fake like an checkbox with custom checkboxes.
For a quickstart in jquery (i would recommend to use jquery) look at code
school, they got a pretty solid free course which will help you start going.
Correct me if I got you wrong on this one but i think what you try to do is
the following:
have some context hidden from the user until he triggers an event (your
example, hover) and then populate a field with a given value of that
triggered event. the question is, do you really need to insert the tooltip
with coffeescript or would it be good to use something like this:
<div class="context>
<div class="tooltip data-input="0" style="display:
none;">
<h1>Heading</h1>
<p>Lorem ipsum dolor ist amet.</p>
</div>
<div class="menu>
<div id="trigger-tooltip>Click me for details</div>
</div>
<%= h.hidden_field :field %>
</div>
and in your js listen for the events:
$(document).ready(function() {
$(''#trigger-tooltip'').on(''click'',
function() {
$(this).closest(''.context'').find(''.tooltip'').toggle();
});
});
$(document).ready(function() {
$(''.tooltip'').on(''click'', function() {
var data = $(this).data(''input'')
$(this).closest(''.context'').find(''input'').val(data);
});
});
This would listen for a click event on a div called tooltip trigger and
then toggle it (showing it and on another click on the div hide it) and the
second function listens on a click event for the tooltip div itself getting
the data-input value and setting the input field in the div
class="context"
if you want to restrict manual user input into a field it is better to use
a hidden_field (hidden field simply isnt displayed but since you populate
it anyway its not that much of a hassle...)
If I got you wrong on what you really want to do it would be cool if you
could give a short description what you want to do and how your dom looks
like (maybe post full form)
since you had questions about the last code example:
var self = $(this); // I use this often so i can better stick with the ruby
convention to self. it is the object that triggered the event - so i can
write self.function and dont need to type $(this) all the time. you will
find this stuff quite often.
.find() // traverses the dom downwards to find the first object responding
to the expressung or find null - means .find(''input'') will
give me the
first input after $(''this'')
var data = input.data(''insert'') // returns the
data-insert="0" - its a way
to pass stuff to JS using the data array for an object.
data(''FIELDNAME'')
-> <div data-FIELDNAME >
input.val(data) // you dont need to set the data inside the input to 0
first to override it since you dont append to the stuff already contained
in that input
hope this is helpful in some way for you.
sincerly,
crispin
Am Donnerstag, 18. April 2013 21:13:17 UTC+2 schrieb Werner
Laude:>
>
> Am 18.04.2013 um 15:49 schrieb Crispin Schäffler
<crispins...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org<javascript:>
> >:
>
> Hi Crispin.. thanks so far..
> I get the idea.. but still...
>
> either find the input by the id (look at compiled html code, but it is
> something like FORMNAME_FIELDNAME) and use val to get data into it.
>
> however, if you want to reuse the function i would recommend something
> like this (totally not tested and straight out of my mind):
>
> <div class="context-menu-one">
> <%= h.text_field :field, data: {insert: 0} %>
> </div>
>
> and in your javascript:
>
>
> What I understand:
>
>
> $(document).ready(function() {
> $(''.contest-menu-one'').on(''click'',
function() {
>
>
> when I click
>
> var self = $(this);
>
>
> I get an identifier?
>
>
> var input = self.find(''input'');
>
>
> find .. but what..this is unclear to me
>
> var data = input.data(0); //put it to 0 and remove the data:
> {insert: 0}
>
>
>
> input.val(data);
>
>
>
>
> });
> });
>
>
>
> my code is:
>
> <div class="context-menu-one">
> <input class="submittable"
id="booking_user_746_angefragte_stunden"
> name="booking_user[746][angefragte_stunden]" size="30"
type="text"
> value="21" />
> </div>
>
> May be step two..if I get the above working
>
> Another thing is that I actually don''t click the insert field
directly,
> but a small pop-up window above it
>
> the is some coffee:
> $ ->
> $.contextMenu
> selector: ".context-menu-one",
> trigger: ''hover''
> autoHide: true
>
> items:
> zero:
> name: "Ableh."
> icon: "delete"
> #callback: ->
> # m = 0
> #alert(m)
>
>
>
> Js is a little nightmare fore me.. need some time
>
> Thanks
>
>
>
>
>
>
>
> would make it a bit more reuseable...
>
> Am Mittwoch, 17. April 2013 14:36:39 UTC+2 schrieb Werner:
>>
>> I need a little support with js. Would be great..
>>
>> I have a textfield with a hover function. If click on the popup I want
a
>> value 0 dropped into the textfield.
>> With the code below just a alert appears...
>>
>>
>> <div class=''context-menu-one''>
>> <%= h.text_field :field %>
>> </div>
>>
>> $(function()
>>
>> {
>> $.contextMenu({
>> selector: ''.context-menu-one'',
>>
>> items: {
>>
>> "paste": {name: "Paste", icon:
"paste"},
>> }
>> });
>>
>>
$(''.context-menu-one'').on(''click'',
function(e){
>>
>> console.log(''clicked'', this); // here ???
>>
>> })
>>
>> });
>>
>>
>> Thanks für your Support
>>
>> Werner
>>
>>
>>
>>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Ruby on Rails: Talk" group.
> To unsubscribe from this topic, visit
>
https://groups.google.com/d/topic/rubyonrails-talk/M4ia565UuJo/unsubscribe?hl=en-US
> .
> To unsubscribe from this group and all its topics, send an email to
> rubyonrails-ta...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
<javascript:>.
> To post to this group, send email to
rubyonra...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<javascript:>
> .
> To view this discussion on the web visit
> https://groups.google.com/d/msg/rubyonrails-talk/-/u5NASXAqtVcJ.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>
>
>
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/EA_N2xYBT0cJ.
For more options, visit https://groups.google.com/groups/opt_out.