2012-10-24 9 views
5

Ich habe einen Link, der auf der Seite ist, und ich möchte es programmgesteuert klicken, wenn die Seite geladen wird.Programmgesteuert klicken Sie auf einen Link mit jQuery auf Seite laden

Etwas wie folgt aus:

$(document).ready(function() { 

    // code to make the page think $('a.tagcloud-link') is clicked 
}); 

Der Link ist ein AJAX-Aufruf, der die beliebtesten Tags in Wordpress-Backend zeigt.

Die Funktion kann nicht einfach bearbeitet werden, da sie von vielen Dingen abhängig ist.

Also ich möchte den AJAX-Link auslösen, der beim Laden der Seite die beliebtesten Tags aufruft.

Dies wird alle meine Probleme lösen, wenn es funktioniert.

Diese Verbindung ist $ (‚a.tagcloud-link‘)

Bitte, bitte auf das mir helfen, ich habe Stunden damit verbracht, meine Haare herausziehen versuchen, und falls dies nicht zu tun. Vielen Dank.

+1

haben sie versucht, $ ('a.tagcloud-link') .first(). trigger ('click'); – Tariqulazam

+0

Dies hat nicht funktioniert @Tariqulazam –

+1

Es scheint von Ihren Kommentaren, dass Sie nicht skizzieren das eigentliche Problem, das Sie haben. Bitte erläutern Sie genau, was Sie zu tun versuchen, damit die Antworten auf den spezifischen Anwendungsfall ausgerichtet werden können. – JamesSwift

Antwort

0

Keine von diesen geholfen. Ich habe es selbst repariert, indem ich die Verbindung umgangen und sie unter Last ausgeführt habe.

+0

Ja, ich verstehe nicht, was diese Leute nicht über click() nicht funktionieren lol. Das gleiche Boot wie du bist und versuchen, etwas in einem Greasemonkey-Skript zu automatisieren. –

1

Wenn ich die Frage richtig verstanden:

$('a.tagcloud-link').click(); 
+0

Versucht, dass es nicht funktioniert :( –

+0

Verwenden Sie das, nachdem Sie Ihren Link dynamisch eingefügt und Appender an den DOM-Baum - '# ('body'). Append ('...'); $ ('a.tagcloud-link'). Click(); ' – Reflective

+0

Der Code wird von normalem HTML und nicht von .append() hinzugefügt Ich versuche zu implementieren, was Sie vorgeschlagen haben, mit einem Inline

1

Versuchen

$('a.tagcloud-link').click(); 

ODER

$('a.tagcloud-link').trigger('click') 
+0

Das hat nicht funktioniert, ich sollte erwähnen, dass der Link, auf den ich beim Öffnen der Seite klicken möchte, selbst ein Code ist, der von jQuery cod generiert wird e dynamisch. Aber ich möchte einen Klick darauf simulieren, wenn das Dokument geladen wird. Sicherlich gibt es einen Weg? –

1
$(function() { 
    $('a.tagcloud-link').on('click', function() { 
      // execute code here 
    }); 
}); 

Dies ist die ordnungsgemäße Verwendung von jQuery.

+0

Ich möchte den Link simulieren, der beim Laden der Seite angeklickt wird. Ich glaube nicht, dass dein Code das tut. –

+1

Dann sollten Sie mehr Code hinzufügen, was soll das Skript tun, wenn die Skripte "denken", dass auf a.tagcloud-link geklickt wurde? –

+0

Das ist der Code: http://jsfiddle.net/Wnra9/ –

6

Versuchen Sie folgendes:

$('a.tagcloud-link')[0].click(); 

Mit [0] erhält einen Verweis auf das erste DOM-Objekt in der jQuery-Objekt so dies die DOM object's (non-jQuery) .click() method nennt, die die Navigation auf den Link des angegebenen href verursacht.

Die Verwendung von jQuery's .click() method würde alle Click-Handler aufrufen, die Sie an das Element gebunden haben, führt jedoch nicht dazu, dass das Standardverhalten dem Link tatsächlich folgt.

Wirklich einfache Demo: http://jsfiddle.net/mtBav/

+0

Das hat nicht funktioniert. Die Funktion funktioniert nicht mehr, nachdem versucht wurde, diesen Code beim Laden der Seite zu laden. –

+0

Dies ist der Code: jsfiddle.net/Wnra9 –

+1

Was ich gezeigt habe, würde einen Fehler verursachen, wenn keine Elemente vorhanden sind, die mit dem Selector "a.tagcloud-link" übereinstimmen. Stellen Sie also sicher, dass Sie das Element zuerst erstellt haben . Der Code in deiner Geige erzeugt kein solches Element und du hast kein HTML angezeigt, also ... (deine Geige ist nicht sehr hilfreich: du solltest JS-Code im JavaScript-Fenster posten (unten links) nicht in das HTML-Fenster, in das Sie es eingefügt haben.) – nnnnnn

1

Um ehrlich zu sein, ich denke, alle anderen hier richtig ist, und ich denke, die Frage falsch umrahmt wird. Aber Heres meinen Versuch und ich denke, alles, was ich getan habe, war es nur ein wenig anders zu gestalten. Ich versuche nur zu helfen.

document.addEventListener("DOMContentLoaded", function() { 
    EventL(); 
}); 

// global 
var tagLoad = false; 

function eventL() { 
    $('a.tagcloud-link').on('click', function() { 
     tagLoad = true; 
    }); 

    // you can repurpose this, its for page refresh right now. but 
    // I think it helps with your general idea? 
    $(window).load(function(){ 
     init(); 
    }); 
} 

function init() { 
    if (tagLoad == true) { 
     // Load your tags. 
    } 
} 
+0

Es könnte falsch gerahmt werden, aber Sie können mir sagen, wie man es einrahmen, obwohl es scheint, als ob Sie nicht verstanden haben, was ich erreichen wollte. Wie auch immer, danke für den Versuch zu helfen! –

+0

Ich habe irgendwo gelesen, dass Sie einen Klick simulieren möchten, suchen Sie nach der visuellen Erscheinung? Oder suchen Sie nach etwas, das Sie sich merken können, wenn Sie auf Ihre Wordpress-Vorlage geklickt haben? – Jim

3
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
$("a#tobeclicked").click(function() { 
// if it has to be href 
var tohref = $(this).attr("href"); 
alert(tohref); 
window.location=tohref; 


// else you want add some functions 

$("#mydiv").fadeIn(); 

}); 
$("a#tobeclicked").trigger('click'); 
}); 
</script> 
<a id="tobeclicked" href="http://www.google.com">Go!</a> 
<div id="mydiv" style="display:none;">Stroam</div> 
+1

man hat mit mir gearbeitet ..... :) – Heart

+0

hey man sagte, keine der Antworten funktionierte für Sie überprüfen Sie den obigen Code, den ich hinzugefügt habe. Es funktioniert 100% Mann ... Ich habe es 5 Mal überprüft und funktioniert perfekt! – Heart

0
function my_admin_head(){ 
echo 
'<script type="text/javascript"> 
    jQuery(function($){ 
     $(\'a.tagcloud-link\').each(function(){ 
      tagBox.get($(this).attr(\'id\')); 
      $(this).unbind().click(function(){ 
       $(this).siblings(\'.the-tagcloud\').toggle(); 
       return false; 
      }); 
     return false; 
    }); 
}); 
</script>'; 
} 
add_action('admin_head', 'my_admin_head'); 

Vielleicht kann es jemandem helfen.

0

Vielleicht die Art und Weise, die Sie für den Zugriff auf das Element verwendet wurde, jquery Syntax mit Javascript mischen. Ich habe dieses Problem auch, aber ich habe versucht, auf ein falsches Element zuzugreifen.

Es war wie dieser

$(document).ready(function(e){ 
     alert(location.hash); 
     if (location.hash == "#22") { 
      $("gallery div a")[1].click(); //without # 
     }; 
    }) 

sollte aber wie diese

$(document).ready(function(e){ 
     alert(location.hash); 
     if (location.hash == "#22") { 
      $("#gallery div a")[1].click(); //with #, cause I was using an ID 
     }; 
    }) 

und arbeitet sein :)

Verwandte Themen