2014-12-26 3 views
1

Я пытающегося использовать следующий JQuery код для вызова метода Meteor:МЕТЕОР: Вставить событие (на стороне клиента), чтобы вызвать метод метеор

$('html').bind('paste', function(e) { 
    Meteor.call('click', document.getElementById("box").value); 
}); 

Я ставлю этот код в теге сценария в HTML и подтвердил что код вызывается, когда мне нужно его вызывать. Однако, вместо того, чтобы вызывать метод Метеор («щелчок») вставить просто вставляет строку:

Meteor.call('click', document.getElementById("box").value); 

в текстовое поле Я пытающегося вставить.

Есть ли способ вызова методов Meteor из привязок JQuery? Или, может быть, есть событие Метеор, которое это делает? Либо сделают! Благодаря!

Если это помогает,

document.getElementById("box").value 

это просто строка я прохожу в «Клик» методом. Кроме того, я все еще работаю над своими навыками JQuery, как вы могли бы рассказать.

+0

Может быть событие «сменить тело» в событиях шаблона? Кроме того, я не могу найти перехватчики событий в документах Meteor, но «paste html» может работать, так как большинство этих событий работают – Sindis

+0

Я не могу получить «change body» или «change #box» для работы. ''change #box': function() { Meteor.call ('click', $ (" # box "). val()); } Это то, что я пробовал в рамках своих событий в Шаблоне. –

+0

И поле textarea? – Sindis

ответ

1

Вот что сделал трюк:

Template.textGoesHere.events({ 
    'input #thebox': function (e) { 
     Meteor.call('click', $("#thebox").val()); 
    } 
}); 

Каждый раз, когда текстовая область получила вход, даже если текст был удален, функция Метеор «вход #thebox» называется.

Это сделало именно то, в чем я нуждался!

0

я бы не полагаться на «входе» событие, потому что, как метеор Docs говорит:

«Другие события DOM также доступны, но для вышеуказанных событий, Метеор предпринял некоторые меры для обеспечения того, чтобы они работать равномерно во всех браузерах ».

Есть также примечание:

«Для текстовых полей, используйте размытие или ключевых событий реагировать на изменения.»

Так что я бы закодировать это событие, как это (KeyDown вместо ввода):

Template.textGoesHere.events({ 
    'keydown #thebox': function (e) { 
     Meteor.call('click', e.target.value); 
    } 
}); 

Также я изменил значение e.target.value, потому что это уже в случае (вы дон 't нужно искать DOM с jquery)