2012-05-29 1 views
0

Я пытаюсь настроить таргетинг на div, вложенные в некоторый php с помощью js, но независимо от того, что я делаю, я не могу настроить его. Вот код для справки: PHP:Невозможно настроить таргетинг на div с помощью JS

echo "<li>"."<div id=\"countryclick\">". "<a href=\"?Continent=$Continent&Country=$Country\">" . $Country . " ". "</a>" . "</div>"."</li>"; 

ЯШ:

$("#countryclick").click(function(){ 
    $("#country").hide(); 
    $("#city").show(); 
}); 

Любые идеи? Спасибо заранее!

+0

попробовать гнездо ваши JS внутри $ (документ) .ready(); – Binil

+0

На самом деле есть некоторые js, которые я не включил, у которых есть $ (document) .ready(); –

ответ

2
div#countryclick 

создается на лету, так что вы можете использовать .live из JQuery. как:

$("#countryclick").live("click",function(){ 
    //code here 
}) 
+0

Zhujy прямо здесь, что может быть вашим ответом, если вы создадите div во время выполнения. – Sunny

0

Я не уверен, что вы создаете div динамически или нет. Если вы создаете его динамически, вам необходимо использовать живой метод следующим образом:

$("#countryclick").live("click",function(){ 
    $("#country").hide(); 
    $("#city").show(); 
}); 

Пожалуйста, проверьте его.

0
<li> 
    <div id="countryclick"> 
     <a href="?Continent=<?php echo $Continent; ?>&Country=<?php echo $Country; ?>"> 
     LINK HERE 
     </a> 
    </div> 
</li> 
<div id="country">country</div> 
<div id="city">city</div> 

$("div#countryclick").live("click",function(){ 
    $("#country").hide(); 
    $("#city").show(); 
}); 

это должно работать.

0

Начиная с jQuery 1.7, метод .live() устарел. Используйте .on() для присоединения обработчиков событий. Если вы используете некоторые старые версии jQuery, вы должны использовать .delegate(), предпочитая .live().

Visit here live() и Here on()