2014-11-25 22 views
8

Ben meteor.js uygulamasında bu gibi jquery kullanmaya çalışıyorum.Meteor 1.0 jQuery nasıl kullanılır

JS:

if (Meteor.isClient) {  
    Meteor.startup(function() { 
      $("button").click(function() { 
       $("p").toggle(); 
      }); 
      }); 
... 

Ya meteor.startup fonksiyonu olmadan

. Ne işe yaramıyor.

HTML:

<button>Click</button> 
<p>Can you see me?</p> 

Ben hiç hata olsun ve ben butonuna tıkladığımda hiçbir şey olmuyor.

cevap

14

Olay yerine harita Meteor şablonlarını kullanmak, böyle taşıma basit bir olay için jQuery kullanmamalısınız:

HTML:

<template name="myTemplate"> 
    <button type="button">Click me !</button> 
    <p>Can you see me ?</p> 
</template> 

JS: görmeye

Template.myTemplate.events({ 
    "click button":function(event, template){ 
    template.$("p").toggle(); 
    } 
}); 
+0

teşekkürler! Ancak, örnek jQuery neden çalışmıyor? Olmalı, değil mi? – Mika

+0

Meteor, DOM yönetimi üzerinde tam kontrol sahibi oluyor (bu yüzden ilk etapta başa çıkmak çok kolay, değil mi?) Ve jQuery kullanarak ayarladığınız olayların şablon yeniden oluşturulmasında korunacağından emin değilim, bu yüzden kodunuzun bu yüzden olduğunu farzediyorum başarısız oluyor, yine de tuzaklardan kaçınmak için Meteor şablonlarını kullanmaya devam et. – saimeunt

+0

Sanırım işe yaramayacağından emin değilim, çünkü başlangıçta henüz DOM öğesi bulunmuyor. Muhtemelen – Sindis

7

kullanım meteor list jquery paket içeriyorsa.
değilse,

+2

ile çalışacaktır. Meteor Docs ve Athmosphere'a göre https://atmospherejs.com/meteor/jquery Jquery otomatik olarak kurulmalıdır. Ancak listelenen göremiyorum. Ben kurdum ve şimdi jquery çalışır. Dokümanlar oldukça yanıltıcıdır. – Mika

+0

Jquery'yi kaldırdım ancak kod çalışmaya devam ediyor. – Mika

+0

Evet, jquery, açıkça bir paket yüklemesi olmadan bile "sadece orada" görünür. – xaxxon

3

ürününü eklemek için meteor add jquery numaralı telefonu kullanın, HTML'inizin üretilmesi olası değildir. templated.rendered etkinliğinizde bunu yapmak istersiniz.

Ancak, diğerlerinin dediği gibi, bunu yine de yapmak istemediğini söylüyorsunuz. Cevabınız için

+0

Bu doğru bir cevaptır, ama ben isSlient kodunda isminizi belirten bir şey belirtmekle birlikte, isServer bloğu bir şekilde hatırlatmak önemlidir. Meteor 1.0'da varsayılan olarak bulunur ve meteor listesinde görünmez. Sadece deneyin ama istemcide şablon bağımlılıkları erişiminiz sürece çalışmalıdır, en az $ ("vücut") isClient içinde çalışmalıdır. – MistereeDevlord

1

aşağıdaki gibi size uygulama kodunu yazmadan önce standart jQuery DOM hazır işlevini kullanmayı deneyin ...

if (Meteor.isClient) { 
    $(function() { 
     // your jQuery code here... 
    }); 
} 
İlgili konular