webForumDet fria alternativet

jqueryn funkar inte för mig ?

26 svar · 2 373 visningar · startad av vagann

vagannMedlem sedan juli 2011171 inlägg
#1

hej jag hittade denna jquery kod (http://dinbror.dk/blog/bPopup/) och skulle vilja använda den på min sida men funkar inte , så har ser min html sida ut

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
 <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
   <script>
    // Semicolon (;) to ensure closing of earlier scripting
    // Encapsulation
    // $ is assigned to jQuery
    ;(function($) {

         // DOM Ready
        $(function() {

            // Binding a click event
            // From jQuery v.1.7.0 use .on() instead of .bind()
            $('#my-button').bind('click', function(e) {

                // Prevents the default action to be triggered. 
                e.preventDefault();

                // Triggering bPopup when click event is fired
                $('#element_to_pop_up').bPopup();

            });

        });

    })(jQuery);

/*********************************************************************************
 * @name: bPopup
 * @author: (c)Bjoern Klinggaard (http://dinbror.dk/bpopup - twitter@bklinggaard)
 * @version: 0.7.0.min
 *********************************************************************************/
(function(b){b.fn.bPopup=function(n,p){function t(){b.isFunction(a.onOpen)&&a.onOpen.call(c);k=(e.data("bPopup")||0)+1;d="__bPopup"+k;l="auto"!==a.position[1];m="auto"!==a.position[0];i="fixed"===a.positionStyle;j=r(c,a.amsl);f=l?a.position[1]:j[1];g=m?a.position[0]:j[0];q=s();a.modal&&b('<div class="bModal '+d+'"></div>').css({"background-color":a.modalColor,height:"100%",left:0,opacity:0,position:"fixed",top:0,width:"100%","z-index":a.zIndex+k}).each(function(){a.appending&&b(this).appendTo(a.appendTo)}).animate({opacity:a.opacity},a.fadeSpeed);c.data("bPopup",a).data("id",d).css({left:!a.follow[0]&&m||i?g:h.scrollLeft()+g,position:a.positionStyle||"absolute",top:!a.follow[1]&&l||i?f:h.scrollTop()+f,"z-index":a.zIndex+k+1}).each(function(){a.appending&&b(this).appendTo(a.appendTo);if(null!=a.loadUrl)switch(a.contentContainer=b(a.contentContainer||c),a.content){case "iframe":b('<iframe scrolling="no" frameborder="0"></iframe>').attr("src",a.loadUrl).appendTo(a.contentContainer);break;default:a.contentContainer.load(a.loadUrl)}}).fadeIn(a.fadeSpeed,function(){b.isFunction(p)&&p.call(c);u()})}function o(){a.modal&&b(".bModal."+c.data("id")).fadeOut(a.fadeSpeed,function(){b(this).remove()});c.stop().fadeOut(a.fadeSpeed,function(){null!=a.loadUrl&&a.contentContainer.empty()});e.data("bPopup",0<e.data("bPopup")-1?e.data("bPopup")-1:null);a.scrollBar||b("html").css("overflow","auto");b("."+a.closeClass).die("click."+d);b(".bModal."+d).die("click");h.unbind("keydown."+d);e.unbind("."+d);c.data("bPopup",null);b.isFunction(a.onClose)&&setTimeout(function(){a.onClose.call(c)},a.fadeSpeed);return!1}function u(){e.data("bPopup",k);b("."+a.closeClass).live("click."+d,o);a.modalClose&&b(".bModal."+d).live("click",o).css("cursor","pointer");(a.follow[0]||a.follow[1])&&e.bind("scroll."+d,function(){q&&c.stop().animate({left:a.follow[0]&&!i?h.scrollLeft()+g:g,top:a.follow[1]&&!i?h.scrollTop()+f:f},a.followSpeed)}).bind("resize."+d,function(){if(q=s())j=r(c,a.amsl),a.follow[0]&&(g=m?g:j[0]),a.follow[1]&&(f=l?f:j[1]),c.stop().each(function(){i?b(this).css({left:g,top:f},a.followSpeed):b(this).animate({left:m?g:g+h.scrollLeft(),top:l?f:f+h.scrollTop()},a.followSpeed)})});a.escClose&&h.bind("keydown."+d,function(a){27==a.which&&o()})}function r(a,b){var c=(e.width()-a.outerWidth(!0))/2,d=(e.height()-a.outerHeight(!0))/2-b;return[c,20>d?20:d]}function s(){return e.height()>c.outerHeight(!0)+20&&e.width()>c.outerWidth(!0)+20}b.isFunction(n)&&(p=n,n=null);var a=b.extend({},b.fn.bPopup.defaults,n);a.scrollBar||b("html").css("overflow","hidden");var c=this,h=b(document),e=b(window),k,d,q,l,m,i,j,f,g;this.close=function(){a=c.data("bPopup");o()};return this.each(function(){c.data("bPopup")||t()})};b.fn.bPopup.defaults={amsl:50,appending:!0,appendTo:"body",closeClass:"bClose",content:"ajax",contentContainer:null,escClose:!0,fadeSpeed:250,follow:[!0,!0],followSpeed:500,loadUrl:null,modal:!0,modalClose:!0,modalColor:"#000",onClose:null,onOpen:null,opacity:0.7,position:["auto","auto"],positionStyle:"absolute",scrollBar:!0,zIndex:9997}})(jQuery);?</script>

   </head>

<body>

<!-- Button that triggers the popup -->
<button id="my-button">POP IT UP</button>
<!-- Element to pop up -->
<div id="element_to_pop_up">
    <a class="bClose">x<a/>
    Content of popup
</div>?

</body>
</html>

här finns det en demo med kod som de har lagt upp http://jsfiddle.net/24A9b/

jag skullle bli tacksam om någon kunde förklara för mig varför den inte funkar ?

voigtann1Medlem sedan juni 20019 519 inlägg
#2

På vilket sätt fungera det inte? JSfiddle fungera för mig i Firefox.

@ndersMedlem sedan juni 200032 969 inlägg
#3

Längst till höger i den långa script-raden ligger ett frågetecken precis före </script>. Ta bort det, så bör det fungera.

mvh

vagannMedlem sedan juli 2011171 inlägg
#4

Tack , nu funkar den bra. men jag undrar en sak kan jag använda länk istället för knapp "<button>" för jag testade med länk och det gick inte ?

voigtann1Medlem sedan juni 20019 519 inlägg
#5

postar din kod som du inte få igång, bytte ut button mot ett a: http://jsfiddle.net/Lu79b/ och få samma resultat (även om html koden var felaktig för du stänger <a> blocket för krysset med <a/> när det skall vara </a>

vagannMedlem sedan juli 2011171 inlägg
#6

så här ser min kod ut

if (isset($_GET['svara']))
{

$sql = mysql_query("SELECT * FROM `members` WHERE `id` = '". $id ."'") or die(mysql_error());
$info = mysql_fetch_array($sql);

$sender_id = $_SESSION['id'];
$message = mysql_real_escape_string($_POST['message']);
$private = $_POST['private'];
$owner_id = $info['sender_id'];

echo '
<div id="element_to_pop_up">
<form action="page.php?action=GB&id='.$id.'&svara" method="post">
<input type="hidden" name="GB_answer" value="GB_answer" />

<textarea name="message" id="gb_textbox"></textarea>

<br /><br />

<input type="checkbox" name="private" value="1" /> Privat 
<input type="submit" style="float:right;" value="Skicka" />
</form>
</div>
';

och detta är länken för pop-uppen

echo'
<!-- Button that triggers the popup -->
<a href="page.php?action=GB&id='.$info['sender_id'].'&svara" id="my-button">POP IT UP</a>';
voigtann1Medlem sedan juni 20019 519 inlägg
#7

Visa den genererade HTML koden istället för PHP kod.

På vilket sätt fungera din kod inte på? Vad säger felloggen på din webbläsare?

fungera för min del, av det jag kan tolka av din PHP kod:

http://jsfiddle.net/Lu79b/1/

få ju bara vara ett element med ett unikt ID per sida..

vagannMedlem sedan juli 2011171 inlägg
#8

html delen funkar bra , när jag har den med php så visas inte formet med textarean.

genererade html koden visar detta

<div id="element_to_pop_up"></div>
voigtann1Medlem sedan juni 20019 519 inlägg
#9

Du har inte querydtring värdet "svara" till något

vagannMedlem sedan juli 2011171 inlägg
#10

förstår inte riktigt vad du menar , och hur gör jag det ?

voigtann1Medlem sedan juni 20019 519 inlägg
#11

när du besöker din sida så måste du ha med dig querystring värdet "svara" med... utan den så är den ju inte satt och då kommer koden inte köras.

vagannMedlem sedan juli 2011171 inlägg
#12

hur förstår inte riktigt hur jag ska göra det , så skulle vara jätte tacksam om du kunde visa med koder ::D

voigtann1Medlem sedan juni 20019 519 inlägg
#13

Ta bort if frågan om du inte skall ha det kravet.

vagannMedlem sedan juli 2011171 inlägg
#14

va ska jag ha istället för if satsen då ?

vagannMedlem sedan juli 2011171 inlägg
#15

ok nu har jag testat detta , nu funkar den endast på den första inlägget , vad är felet ?

voigtann1Medlem sedan juni 20019 519 inlägg
#16

Inget, eller en fråga som passar in bättre på när du vill att kod blocket skall renderas ut.

Ingen vet hur du skriver dina koder eller hur det fungera idag eller hur du vill saker skall fungera. Om du har problem med PHP kod så få du nog postar mer relevant kod, en tydlig förklaring på vad som inte fungera och ett önskat resultat.

vagannMedlem sedan juli 2011171 inlägg
#17

ok nu ska jag försöka , jag har inga goda kunskaper i php men försöker lära mig så det säkert massa fel i kodningen , det jag vill göra att när man trycker på svara knappen så ska pop-upen visas med fälten där meddelandet skrivas och sedan sparas i databasen. så här ser min kod ut

$sql = mysql_query("SELECT * FROM `members` WHERE `id` = '". $id ."'") or die(mysql_error());
$info = mysql_fetch_array($sql);

$sender_id = $_SESSION['id'];
$message = mysql_real_escape_string($_POST['message']);
$private = $_POST['private'];
$owner_id = $info['sender_id'];

echo '
<div id="element_to_pop_up">
Skriv ett svar till '. $info['username'] .'
<form action="page.php?action=GB&id='.$id.'&svara" method="post">
<input type="hidden" name="GB_answer" value="GB_answer" />

<textarea name="message" id="gb_textbox"></textarea>

<br /><br />

<input type="checkbox" name="private" value="1" /> Privat 
<input type="submit" style="float:right;" value="Skicka" />
</form></div>
';

if (!empty($message))
{

mysql_query("INSERT INTO `guestbook` (`sender_id`, `owner_id`, `message`, `date`,`private`)
VALUES('$sender_id', '$id', '$message', '$current_date', '$private')") or die(mysql_error());

}

 echo'<a href="page.php?action=GB&id='.$info['sender_id'].'&svara"  id="my-button">POP IT UP</a>';

nu har du allting som e viktig

voigtann1Medlem sedan juni 20019 519 inlägg
#18

var kommer $id ifrån? vad har du alla andra variabler till? Du använder dom inte alls ser det ut som?

vagannMedlem sedan juli 2011171 inlägg
#19

$id är definierad i början av php filen , jag använder de variablerna för att kunna registrera information som avsändare , ägaren i databasen.

voigtann1Medlem sedan juni 20019 519 inlägg
#20

tycker du bidrar med lite kod fortfarande... men vad menar du med:

ok nu har jag testat detta , nu funkar den endast på den första inlägget , vad är felet ?

har du en loop av inlägg? Det finns inget i din kod som säger något om ditt problem.

139 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)