2012-03-23 2 views
3

Я создаю какой-либо тип добавления/удаления taglist, который связан с mySQL. Мне удалось получить теги из базы данных для отображения с помощью вызова ajax, но я не могу делать с ними никакой операции. Даже не общий стиль. Когда я проверяю с Firebug, все html, кажется, на месте, поэтому я не могу понять, что не так. Вот мой код:Почему моя функция jQuery .css не работает?

JQuery:

$(document).ready(function() { 

    $("#ontvangenjson").css("border","3px solid red"); 


    $.getJSON("jason2.php", function(data) { 

     $.each(data, function(){ 

     var merkTag = " <a class=\"deletemerk\" href="+"http://localhost/website/remove_merk.php?id="+this.pkFavorietemerken+">" + this.merken + "</a>"; 

     $("#ontvangenjson").append(merkTag); 

       }); 

      }); 

     }); 

PHP: jason2.php

$merken_lijst = "SELECT favorietemerken.pkFavorietemerken, favorietemerken.merken FROM favorietemerken JOIN bedrijven ON bedrijven.pkBedrijvenID=favorietemerken.fkBedrijvenID WHERE favorietemerken.fkBedrijvenID=$neem_id"; 


$rows = array(); 
$sth = mysql_query($merken_lijst); 
while($r = mysql_fetch_assoc($sth)) { 
$rows[] = $r; 
} 
print json_encode($rows); 

ПОЛУЧЕННЫЕ JSON:

[{"pkFavorietemerken":"71","merken":"Nike"},{"pkFavorietemerken":"70","merken":"Le Coq Sportif"},{"pkFavorietemerken":"69","merken":"Converse"},{"pkFavorietemerken":"68","merken":"Champion"},{"pkFavorietemerken":"67","merken":"Adidas"}] 

HTML:

<body> 


    <h1><label for="brands-form-brand">Get JSON data</label> <input type="button" id="knop" value="get JSON" /></h1> 

    <hr /> 

    <p class="section-title"><strong>JSON Data received</strong></p> 


    <div id="ontvangenjson"> </div> 

</body> 

ОТВЕТ

После много, много, много исследований я, наконец решить эту проблему. Код не был действительно неправильным, но часть его была неуместной. Get.JSON является асинхронным значением, если вы хотите внести какие-либо изменения с помощью функции jQuery .css, вам нужно будет сделать это внутри обратного вызова для getJSON.

$.getJSON("jason2.php", function(data) { 
    var merkTag = ""; 
    $.each(data, function(){ 
    merkTag += " <a class=\"deletemerk\" href="+"http://localhost/website/remove_merk.php?id="+this.pkFavorietemerken+">" + this.merken + "</a>"; 
    }); 

    $("#ontvangenjson").append(merkTag); 

    // NEW CODE 
    $(".deletemerk").css("border","3px solid red"); 
    }); 

ответ

0

Я не уверен, что это решит вашу проблему, но я хотел бы начать, пытаясь очистить путь вы делаете эту ссылку. Возможно, вы пропустили одну или две кавычки. Вместо того, чтобы путаницы избежать или не избежать двойных кавычек, просто окружить строку с одинарными кавычками:

var merkTag = '<a class="deletemerk" href="http://localhost/website/remove_merk.php?id=' 
       + this.pkFavorietemerken 
       + '">' 
       + this.merken 
       + '</a>'; 

Это оставляет вас свободно использовать двойные кавычки, когда вы создаете строку HTML. Я использовал несколько строк здесь просто для ясности. Ясность по краткости.

+0

Да, я признаю, что моя ссылка не создана чистым способом, но, к сожалению, это не проблема. Я проверил это с вашей ссылкой. –

4

Сокращенные свойства (такие как border) не поддерживаются jQuery.css().

http://api.jquery.com/css/

+0

Хорошо, это странно, что это работает с другими элементами моей страницы. Но я буду помнить об этом. –

1

Если вы хотите использовать все три свойства границы, попытайтесь их определения независимо друг от друга, это может решить вашу проблему.

+0

@Patrik Bhatt, реальная проблема, кажется, я не могу управлять никакими действиями на $ ("# ontvangenjson") даже не оповещения –

Смежные вопросы