php ve jquery click olay sorunu

3 Cevap php

I'm having trouble firing a click event on an . When insertIntoInsertHolder() is called it adds a link to the content of div#swf_insert_holder - I then create the click event just below. However the event doesn't fire.

$javascript = "javascript:;";
$swf_insert_box_link = "swf_insert_box_link";

echo "

function insertIntoInsertHolder( filename ) {   
$('#swf_insert_holder').append('<a href=" . $javascript . " class=" .     $swf_insert_box_link . ">go</a>');
//produces: <a href="javascript:;"    class="swf_insert_box_link">go</a>            
    }

$('a.swf_insert_box_link').click( function() {
alert('hello!!'); //for testing     
});

Şimdiden teşekkürler!

3 Cevap

Bunu kullanarak çalışmaya neden olur:

<?php
$javascript = "javascript:;";
$swf_insert_box_link = "swf_insert_box_link";

echo <<<JS
function insertIntoInsertHolder( filename ) {   
  \$('#swf_insert_holder').append('<a href="$javascript" class="$swf_insert_box_link">go</a>');
  // produces: <a href="javascript:;" class="swf_insert_box_link">go</a>            
}

\$('a.swf_insert_box_link').live('click', function() {
  alert('hello!!'); //for testing     
});
JS;
?>

Önemli parçaları olay geri arama before eleman aslında var tanımlayabilirsiniz böylece yerine tıklayın live kullanarak, tüm PHP sözdizimi hataları ve 2. sabitleme, 1. idi.

Ayrıca dikkat edilmesi gereken, bu olay işleyicileri mevcut elemanlarına bağlıdırlar. Için 'tıklayın' olay a.swf_insert_box_link bağlı olduğunda Yani, eleman bulunmalıdır. Verilen mevcut seçicinin ve aynı seçici eşleşen yeni elemanlar için ekli olay olması için, kullanıcı canlı () - http://api.jquery.com/live/

öğesi olay dinleyicileri takmadan önce var olmalıdır. Eğer () (jQuery 1.3 + gerektirir) yerine tıklama canlı () fonksiyonu ile bunu, ya da elemanı oluştururken bu gibi bağlamak için:

function insertIntoInsertHolder( filename ) {   
    $('#swf_insert_holder').append(
        $('<a>')
            .attr('href', '<?php echo $javascript; ?>')
            .addClass('<?php echo $swf_insert_box_link;?>')
            .text('go')
            .click(function() { alert('hello!!'); });
    );
}