• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Externe Links funktionieren nicht

duti

Mitglied
Guten Tag miteinander,

Ich hab ein kleines Problem.. Ich mache für einen Kumpel eine Seite.. Eine ganz ganz schlichte Seite.
Ich lade über jquery dynamisch 3-4 seiten über buttons.. Ich hab aber auch noch ein paar Buttons die ich gerne Extern verlinken will.. d.h eine andere Seite soll geladen werden.
Soll ja eigentlich SEHR SEHR SEHR einfach sein. Doch es funktioniert einfach nicht. Ich verstehe nicht warum.. Hat das was mit jquery zutun? Muss ich einen anderen Code dafür nehmen?

Wenn ich mit der Maus über die externen Buttons fahre sieht man unten links den Link zur anderen Seite aber wenn man drauf klickt geschiet nichts.

Weis nicht was ich falsch mache.

Die Internen Link wie "Home", "Lieferservice", "Kontakt" usw funktionieren.

Code index.php
PHP:
<!DOCTYPE>
<html>
<head>
        <title>Auto</title>
        <link rel="stylesheet" type="text/css" href="stylesheet.css"/>
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script src="js/general.js"></script>

</head>
<body>    
<div id="bg1"></div>
<div id="bg2"></div>
        <div id="page">
            <div id="header"></div>
                <div id="buttons">
                    <ul id="butt">
                        <li><a href="home">Home</a></li>
                        <li><a href="http://atw.autoteileshop.ch/">Shop</a></li>
                        <li><a href="produkte">Produkte</a></li>
                        <li><a href="https://www.euro-cat24.ch/SSL/Appl/login.aspx?ReturnUrl=%2fssl%2fappl%2fhome.aspx">EC24</a></li>
                        <li><a href="lieferservice">Lieferservice</a></li>    
                        <li><a href="http://www.rowe-mineraloel.com/kundenservice/oelwegweiser/">ROWE</a></li>
                        <li><a href="http://www2.yokohama-online.com/ch/">Yokohama</a></li>
                        <li><a href="http://www.kstools.com/de/firma.html">KSTools</a></li>
                        <li><a href="kontakt">Kontakt</a></li>                        
                    </ul>
                </div>
                <div id="main">
                    <div id="content" style="width:100%; padding:0px 5px;"></div>
                    

                            </div>
                </div>

            <div id="footer">
            <p>Copyright by </p>
            </div>    
        </div>    

</body>
</html>


Ich kann jede Hilfe gebrauchen.
Ich danke im vorraus!

Mfg Duti

Moved: JavaScript, AJAX und DHTML - Was macht das in PHP? (XraYSoLo)
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Hallo,

schön das vermudest das dies vielleicht an jquery liegt und wie so zeigst nicht etwas jquery code oder am besten ein Link zur Seite?

Ich schätze mal das per jquery die Links im Menü return false machst das halt nicht die links ausgeführt werden sondern query den inhalt nach laden kann.
Das möchtest je jetzt unlogischer weise bei einigen Links im Menü nicht also must diese ausschließen.

unlogischer weise, weil der User nicht damit rechnet das im Menü plötzlich links drin sind die von der Homepage weg leiten.

Cheffchen
 
Hallo Cheffchen

Danke für die Antwort..
Der code von Jquery ist dieser.
Code:
$(document).ready(function() {
    $('#content').load('content/home.php');
    
    $('ul#nav li a').click(function() {
        var page = $(this).attr('href');
        $('#content').load('branchen/' + page + '.php');
        return false;
    });
        $('ul#butt li a').click(function() {
        var page = $(this).attr('href');
        $('#content').load('content/' + page + '.php');
        return false;
    });
        $('ul#aus1 li a').click(function() {
        var foo = ('content/' + page + '.php');
        alert(foo);
        var page = $(this).attr('href');
        $('#content').load('content/' + page + '.php');

        return false;
    });
        $('ul#werben1 li a').click(function() {
        var foo = ('content/basic.php');
        alert(foo);
        var page = $(this).attr('href');
        $('#content').load('content/basic.php');

        return false;
    });
});

kannst vieleicht etwas damit anfangen..

@XraYSoLo ... sry ;)
 
Werbung:
Hallo,

also ohne das jetzt getestet zu haben musst als erstes dein externen links vielleicht eine andere classe geben.

Code:
[COLOR=#000000]<li><a class="extern" href="http://xxxxxx/">Shop</a></li>[/COLOR]

jetzt musst in dein jquery noch sagen das dies als normale links nutzen soll.
vielleicht so
Code:
    $('ul#nav li a:not(.[COLOR=#000000]extern[/COLOR])').click(function() {
        var page = $(this).attr('href');
        $('#content').load('branchen/' + page + '.php');
        return false;
    });
wenn das funktionieren sollte musst das :not(.extern) dann in den anderen 3 abfragen mit einfügen.
wenn das funktionieren sollte musst halt dran denken das externe Links die classe extern geben.

Cheffchen
 
Die jQuery-Funktionen schalten das Standardverhalten der Links ab, und deshalb funktioniert auch die Weiterleitung nicht. Es gibt viele Möglichkeiten das zu lösen, u.a. durch Veränderung des Selectors, wie von Cheffchen beschrieben. Ebenso könnte man abfragen, ob die Links mit "http" beginnen oder die für den Ajax-Call gedachten Informationen im data-Attribut von HTML ablegen.
 
Hi Leute.

Danke für die Antworten..

Leider geschiet immer noch nichts :( .. Ich verzweifle.
Weis nicht was machen.. Die normalen links werden einfach nicht geladen..

Wisst ihr vieleicht noch was anderes?
Bin immernoch auch im netz auf der suche..

Danke

mfg duti
 
Werbung:
Hi Leute.

Weis nicht was machen.. Die normalen links werden einfach nicht geladen..

Bin immernoch auch im netz auf der suche..

Warum die Weiterleitungen nicht funktionieren, wurde doch bereits erklärt.

Entweder formulierst du eine if-Abfrage (z.B. ob ein Element existiert), oder änderst den Selector, in dem bsw. jeder interne Link eine CSS-Klasse erhält. Also nicht mehr $('ul#butt li a') sondern $('.intern'), $('li a.intern'), $('li a').hasClass('intern'), etc.
 
hi,

Verstanden ;)

Ich bin leider kein Pro..
Ich bin noch in dem Prozess andem ich erst mal noch verstehen muss wiso .intern usw..

Gibt eben leider im internet nichts gescheites..
 
Du musst lediglich ein Unterscheidungsmerkmal für den Fall erzeugen, in dem entweder der Ajax-Request getriggered oder einem HTML-Link gefolgt werden soll und dir in diesem Zusammenhang darüber klar werden, was return false macht.
 
Werbung:
Guten Abend.

So meine Freunde... Nun hab ich das zum Teil mal geschaft puhh...
Nur jetzt kommt das nächste problem und zwar..

Jetzt wird die Seite die durch das Button geladen werden soll auch geladen..
Nur die kommt im Tab doppelt?? Weis aber nicht wiso? sollte ja nicht :mrgreen:..

seht ihr den was?

nun aktueller code

index.php
Code:
                <div id="buttons">
                    <ul id="butt">
                        <li><a href="home">Home</a></li>
                        <li><a class="extern" href="http://www.google.com">Link1</a></li>
                        <li><a href="produkte">Produkte</a></li>
                        <li><a href="https://www.euro-cat24.ch/SSL/Appl/login.aspx?ReturnUrl=%2fssl%2fappl%2fhome.aspx">EC24</a></li>
                        <li><a href="lieferservice">Lieferservice</a></li>    
                        <li><a href="http://www.rowe-mineraloel.com/kundenservice/oelwegweiser/">ROWE</a></li>
                        <li><a href="http://www2.yokohama-online.com/ch/">Yokohama</a></li>
                        <li><a href="http://www.kstools.com/de/firma.html">KSTools</a></li>
                        <li><a href="kontakt">Kontakt</a></li>                        
                    </ul>
                </div>

general.js
Code:
$(document).ready(function() {
    $('#content').load('content/home.php');
    
    $('ul#nav li a').click(function() {
        var page = $(this).attr('href');
        $('#content').load('branchen/' + page + '.php');
        return false;
    });
        $('ul#butt li a').click(function() {
        var page = $(this).attr('href');
        $('#content').load('content/' + page + '.php');
        return false;
    });
        $('ul#aus1 li a').click(function() {
        var foo = ('content/' + page + '.php');
        alert(foo);
        var page = $(this).attr('href');
        $('#content').load('content/' + page + '.php');

        return false;
    });
        $('ul#werben1 li a').click(function() {
        var foo = ('content/basic.php');
        alert(foo);
        var page = $(this).attr('href');
        $('#content').load('content/basic.php');

        return false;
    });


        $("ul#butt li a.extern").click(function(e) {
            e.preventDefault();
            var url = $(this).attr('href');
            window.open(url);        
        });                  


});

ich danke euch für eure hilfe

mfg duti
 
HTML:
<ul>
	<li><a data-link="home" href="#">Home</a></li>
	<li><a href="http://google.de">Google</a></li>
</ul>

<script type="text/javascript">
$('ul li a').on('click', function(e) {
	e.preventDefault();
	var link = $(this).attr('data-link');
	var url = $(this).attr('href');
	
	if ($(this).attr('data-link')) {
		alert('foo/' + link + '.php');
	} else {
		window.open(url, '_blanc');
	}
});
</script>
 
Zurück
Oben