Tıklama işlevi olmayan bir jquery çalıştırın

3 Cevap php

Bu kod ile, bir bağlantı maruz kullanmak ve çalışır:

$(document).ready(function() {
  var triggers = $("a[rel]").overlay({
    expose: {
      color: '#212121',
      loadSpeed: 200,
      opacity: 0.9
    },
    closeOnClick: false
  });
});

Link:

<div id="triggers"><a href="" rel="#pop_member">Click here</a></div>

Ama ben bunu değiştirmek php basılmış kod çalıştırmak istiyorum:

$(document).ready(function() {
  function run_expire(){
    var triggers = $("#pop_member").overlay({
      expose: {
        color: '#212121',
        loadSpeed: 200,
        opacity: 0.9
      },
      closeOnClick: false
    });
  }
});

ve php baskı:

echo '<script type="text/JavaScript">run_expire();</script>';

ancak bu çalışmıyor.

3 Cevap

Sorun run_expire fonksiyon sadece document.ready() fonksiyonu içinde tanımlanır, böylece script etiketi içindeki kod bulamıyorum olmasıdır.

Burada $(document).ready() kullanmaya gerek yok. Daha iyi bir çözüm, sadece bu olacaktır:

function run_expire(){
  var triggers = $("#pop_member").overlay({
    expose: {
        color: '#212121',
        loadSpeed: 200,
        opacity: 0.9
    },
    closeOnClick: false
  });
}

Emin belge böyle yapabilirsiniz, hangi run_expire olsa çalıştırmadan önce hazır olduğundan emin olmak isteyebilirsiniz:

echo '<script type="text/JavaScript">$(run_expire);</script>';

Edit

Sizin kod baktığımızda, başka bir sorun var. $("#pop_member") Bu şekilde tanımlanmış bir bağlantı seçin olmaz:

<a href="" rel="#pop_member">

Eğer seçici çalışmak istiyorsanız, bunu yapmak zorundayız:

<a href="" id="pop_member">

Yalnızca aynı id niteliğine sahip bir sayfada bir öğesi olabilir Ancak, bu, ne istediğinizi olmayabilir. rel nitelik, ya burada gerçekten uygun değildir. Muhtemelen bu gibi bir sınıf ile tanımlamak istiyorum:

<a href="" class="pop_member">

Bu seçici ile:

$(".pop_member")

Eğer really bağlantıyı bunu yazdım yolu seçmek istiyorsanız Alternatif olarak, bu seçici kullanabilirsiniz:

$("a[rel='#pop_member']")

Edit 3

Sizin gerçek bir sorun jQuery araçları kitaplığı doğru kullanılan değildi ki, hangi this question ifade edildi. Sen bindirme fonksiyonu api: true geçmek ve sayfa yük programlı görüntülenecek bindirme için sırayla, .load() bindirme işlevinin dönüş değeri aramak gerekir.

Bu deneyin:

echo '<script type="text/JavaScript">$(function () { run_expire(); });</script>';

Bu senin run_expire function $ (belge) kapsam içinde tanımlanır çünkü bulunuyor. Hazır olay işleyicisi.

Sen dışında fonksiyon tanımlayabiliriz:

function run_expire(){
    var triggers = $("#pop_member").overlay({
        expose: {
            color: '#212121',
          loadSpeed: 200,
          opacity: 0.9
        },
        closeOnClick: false
    });
}

$(document).ready(function() {
    run_expire();
});

Yani genel kapsamda run_expire tanımlayacak, ve php oluşturulan komut çalışacaktır.