PHP ile jQuery fonksiyonları tetikleme

2 Cevap php

. Şimdiye kadar benim sitesi geliştirme sırasında harici bir js dosyasında tüm jQuery fonksiyonları saklamak olmuştur, aşağıda içindeki fonksiyonların iki örnek:

// Loads the login form into the page.
function loadLoginForm() {
  $('[name=loadLoginForm]').click(function() {
    $("#loadingImage").css({ display:"block" });
    $("#mainWrap").load("modules/web/loginForm.php", null, function(data) {
      loadRegisterForm(this, data);
      validateLoginDetails(this, data);
      characterSelect(this, data);
    });
  });
}

// Loads the register form into the page.
function loadRegisterForm() {
  $('[name=loadRegisterForm]').click(function() {
    $("#loadingImage").css({ display:"block" });
    $("#mainWrap").load("modules/web/registerForm.php", null, function(data) {
      loadLoginForm(this, data);    
      registerUser(this, data);
    });
  });
}

Ben bu fonksiyonları tetikleyen oylandı yolu bu gibi PHP kullanarak sayfaya bir bağlantı yankı oldu;

Click <a href="#" name="loadLoginForm"><i>here</i></a> to login.

Ben şimdi karşılıklı sorun nasıl kod PHP tarafı yerine onu tetiklemek için kullanıcıya bir link vererek bir olayı tetiklemek izin yapmak nedir?

Ben ile geldi tek cevap bazı JavaScript yankı PHP almak oldu böylece sayfa JavaScript gerekli işlevini tetikleyecek yükler, ama ben bu kodu nasıl bilmiyorum.

Bu kullanılacak gerekir bir durum kullanıcı başarılı bir giriş olduğunda örneğin, ben kullanıcı bunu otomatik olarak oraya gitmek alışkanlık sonraki bölümüne gitmek için bir link vermek için PHP kazandı kalmamasıdır.

2 Cevap

Ben bunu yapıyor gibi görünüyor dışarıdan gibi JavaScript fonksiyonları bir sürü var iyi olduğunu düşünüyorum. Hayır (veya az) kodu bu ortak dış JS Dosya idam edilmelidir. Sonra HTML sayfalarında kendilerini bazı dinamik JavaScript ekleyebilirsiniz:

<script type="text/javascript">
$(function() {
  loadLoginForm();
  loadRegisterForm();
});
</script>

Alternatif işlevleri içinde hazır () kodu koyabilirsiniz. Bu şekilde sadece minimal ve gerekli kod bir sayfada idam olur.

İnan bana, ben bunu (tüm kod, her sayfada idam olur) başka bir şekilde yaptık ve sayfa yükleme süreleri çok hızlı bir şekilde aptalca yüksek olsun.

Edit: sadece bir olay çağırmak istiyorsanız, size söylüyorlar:

<a href="#" id="delete">Delete</a>

Sadece gerekir:

$(function() {
  $("#delete").click();
});

(Tıklama işleyicisi atanmıştır varsayarak). hiçbir argüman ile () tıklayın click olayını tetikler.

Ayrıca etkili "bu" el adlandırılan Javascript ayarlayabilirsiniz. Eğer var düşünün:

$("#delete").click(delete_stuff);

function delete_stuff() {
  alert($(this).attr("href"));
  return false;
});

Eğer ile başka yerde çağırabilirsiniz:

delete_stuff.call($("#delete")[0]);

Yani açıkça "bu" ayar edilir. Bkz JavaScript call and apply.

Bu yardımcı olur mu?

The problem I am facing now is how do I let the PHP side of the code trigger an event instead of it giving the user a link to trigger it?

Belki load event kullanabilir? Ne zaman '[name = loadRegisterForm]' veya '[name = loadLoginForm]' onlar geri arama kodu çalıştırmalısınız sayfada görünür. Ben bu test değil, ve bu sizin için soran ne oldu emin değilim, ama bu olayın nasıl olduğuna inanıyorum ettik ...

Ancak, bu başka şekilde yapıyor düşündünüz mü? Tüm sonra, o orada ne var - Sen doğru html sayfa yük php tarafından oluşturulan olabilir zaten varsa javascript kullanmaktan kaçınmalısınız. Ben bir web sitesi her zaman javascript olmadan çalıştırmak yapmak gerektiğini göstermektedir adam normalde tür değilim, ama burada tamamen mümkün ve iyi bir uygulamadır gerekir.