2017-11-29 1 views
3

Nicht sicher, warum der Code nicht funktioniert. Das JavaScript druckt weder die Alarmbox noch verhindert es das Vorkommen des Ereignisses. Ich ging davon aus, dass die Daten asynchron geladen würden und mich auf der gleichen Seite belassen würden.Capture href und verhindern Ereignisstandard

<!DOCTYPE html> 
<html> 
<head> 
<title>Page Title</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js'></script> 
    <link rel="stylesheet" type="text/css" href="stylesheet.css"> 
</head> 
<body> 
<div data-role="page"> 
<div data-role="header"></div> 
    <div data-role="content"> 
     <p id = "heading">Is Nursing For You?</p> 
     <br/> 
     <div id = "div1" align="center"></div> 
    </div> 
<div data-role="footer" id = "foot" data-position="fixed"> 
<table> 
    <tr> 
     <th><h1 id = "alignLeft">Future Goals</th></h1> 
     <th><h1 id = "socialMediaText alignCenter">Get Social With Us!</h1> 
</th> 
     <th></th> 
    </tr> 
    <tr> 
     <td id = "alignLeft">Telephone: 304-444-39876</td> 
    <tr> 
     <td = "alignLeft">Email: [email protected]</td> 
    </tr> 
    </tr> 
</table> 
</div> 
</div> 

This is where im having the trouble at. Not sure why the alert is not sending or redirecting me. 
<script type='text/javascript'> 
$(document).ready(function(){ 
$("#div1").load("FONWVhp.php"); 
    $('#div1').click(function(e){ 
    e.preventDefault(); 
    alert($(this).attr('href')); 
}); 
}); 




    </script> 

</body> 
</html> 

Dies ist Fp.php die, wenn sie aufgerufen wird die Seite geladen wird, aber sobald die Seite geladen ist, gibt es href ist, die angezeigt werden. Wenn die Person also auf href klickt, bleibt die Seite erhalten, aber die Daten ändern sich und die Informationen kommen von articles.php (unten).

$sqlPAQuery = "SELECT pages.pageId, pages.pageTitle FROM pages order by 
pages.pageId"; 
$paqueryResult = mysqli_query($conn,$sqlPAQuery); 
while ($paqueryRow = mysqli_fetch_object($paqueryResult)) 
{ 


$pages = "<div class='center-wrapper'><a href = articles.php? 
pageId=".$paqueryRow->pageId."><button class= center-wrapper'>".$paqueryRow- 
>pageTitle."</button></a><br/><br/></div>"; 
echo $pages; 

} 

articles.php

$sqlARTICLEQuery = "SELECT * FROM articles where pageId=".$_GET['pageId']." 
order by articleId"; 
$articlequeryResult = mysqli_query($conn,$sqlARTICLEQuery); 
while ($articlequeryRow = mysqli_fetch_object($articlequeryResult)) 
{ 
$articles ="<div id = 'div1' class='center-wrapper'><a href = 
article.php?articleId=".$articlequeryRow->articleId."><button id 
='wrapper'>".$articlequeryRow->articleTitle."</button></a><br/><br/></div>"; 

echo $articles; 
} 
+3

Fügen Sie den Ereignisparameter auf den 'click' Handler – Mouneer

+3

nur zu informieren, haben Sie zwei divs mit der gleichen ID' div1'. – karliwson

Antwort

3

Sie müssen wait for the div contents to load, bevor es zu manipulieren. Versuchen Sie folgendes:

$(document).ready(function() { 
    $("#div1").load('FONWVhp.php', function() { 
     $('#div1 div.center-wrapper a button').click(function(event){ 
      event.preventDefault(); 
      alert($(this).parent().attr('href')); 
     }); 
    }); 
}); 

Außerdem habe ich einige Fehler in Ihrem Code korrigiert:

  1. Statt $('#div1').click(...) Verwendung $('#div1 div.center-wrapper a button').click(...).
  2. Ich nehme an, Sie möchten den Anker href, also müssen Sie alert($(this).parent().attr('href')) verwenden.
+0

Das endete damit, meine Knöpfe wegzunehmen, als ich mit diesem Code ersetzt habe? –

+0

Bitte testen Sie erneut mit diesem aktualisierten Code. – karliwson

+0

Ich habe den Code aktualisiert, aber immer noch keinen Erfolg –

0

nur ein E/Ereignis in der Funktion setzen

<script type='text/javascript'> 

$(document).ready(function(){ 
    $("#div1").load("Fp.php"); 
    $('div.div1 a button').click(function(e){ 
     e.preventDefault(); 
     alert($(this).attr('href')); 
    }); 
}); 
</script>