Permalänk
Medlem

Problem med jQuery .click()

Tjenare,

Har ett problem med jQuerys .click()-funktion. Scriptet körs, men elementet klickas aldrig.

<script type="text/javascript"> function autoplay() { $("embed").click(function() { console.log("clicked"); }) $("embed").click(); console.log("fired"); } </script>

Från det där får jag sedan enbart "fired" i konsolen. Någon som har några idéer?

Visa signatur

Citera för svar!|Fraktfritt hos INET|Min hemsida
Fractal Design Define R3|Corsair AX 850W|Gigabyte Nvidia GeForce GTX 570|Corsair Vengeance 1600MHz 2x4GB|ASRock P67 Extreme4|Intel Core i5 2500K|2x Samsung Spinpoint F3 1TB|Samsung Blu-Ray läsare
Nikon D7000|Nikon 60mm macro|Nikon 18-70|Nikon 55-300|Nikon 10.5 Fisheye

Permalänk
Medlem

du måste väl definera om det är en klass eller ett id?

$('.embed').click()
$('#embed').click()

Visa signatur

Canon 70D | 2x Dell Ultrasharp 24" | Ryzen 3700X | 32B | GTX 1080Ti

Permalänk
Medlem
Skrivet av Florrpan:

du måste väl definera om det är en klass eller ett id?

$('.embed').click()
$('#embed').click()

Det är varken eller, den ska köras på alla <embed>-objekt. Men kan prova att lägga på en klass, tvivlar dock på att det kommer göra skillnad.

Update: ingen skillnad

Visa signatur

Citera för svar!|Fraktfritt hos INET|Min hemsida
Fractal Design Define R3|Corsair AX 850W|Gigabyte Nvidia GeForce GTX 570|Corsair Vengeance 1600MHz 2x4GB|ASRock P67 Extreme4|Intel Core i5 2500K|2x Samsung Spinpoint F3 1TB|Samsung Blu-Ray läsare
Nikon D7000|Nikon 60mm macro|Nikon 18-70|Nikon 55-300|Nikon 10.5 Fisheye

Permalänk
Medlem

Ser inte ut som du stängt scriptet riktigt

$("embed").click(function() {
console.log("clicked");
}); <----- korrekt stängd.

Kan det vara det som strular?

Visa signatur

Canon 70D | 2x Dell Ultrasharp 24" | Ryzen 3700X | 32B | GTX 1080Ti

Permalänk
Medlem
Skrivet av Florrpan:

Ser inte ut som du stängt scriptet riktigt

$("embed").click(function() {
console.log("clicked");
}); <----- korrekt stängd.

Kan det vara det som strular?

Fixade just det, men click-funktionen vill sig fortfarande inte :/

Visa signatur

Citera för svar!|Fraktfritt hos INET|Min hemsida
Fractal Design Define R3|Corsair AX 850W|Gigabyte Nvidia GeForce GTX 570|Corsair Vengeance 1600MHz 2x4GB|ASRock P67 Extreme4|Intel Core i5 2500K|2x Samsung Spinpoint F3 1TB|Samsung Blu-Ray läsare
Nikon D7000|Nikon 60mm macro|Nikon 18-70|Nikon 55-300|Nikon 10.5 Fisheye

Permalänk
Medlem

Detta bör fungera om jag inte är helt ute å cyklar...

$(document).ready(function() { $("embed").click(function() { console.log("clicked"); }); });

Visa signatur

Canon 70D | 2x Dell Ultrasharp 24" | Ryzen 3700X | 32B | GTX 1080Ti

Permalänk
Medlem

Laddar du in elementet dynamiskt i efterhand? Testa detta i så fall.

<script type="text/javascript"> function autoplay() { $("<närmsta element som inte laddas dynamiskt>").on("click", "embed", function() { console.log("clicked"); }) $("embed").click(); console.log("fired"); } </script>

Description: Attach an event handler function for one or more events to the selected elements.
source

Permalänk
Medlem
Skrivet av psiko:

Laddar du in elementet dynamiskt i efterhand? Testa detta i så fall.

<script type="text/javascript"> function autoplay() { $("<närmsta element som inte laddas dynamiskt>").on("click", "embed", function() { console.log("clicked"); }) $("embed").click(); console.log("fired"); } </script>

Description: Attach an event handler function for one or more events to the selected elements.
source

Elementet laddas in dynamiskt, ja. Det gör dock även skriptet. Funktionen körs alltid efter att objektet laddats in, så känns osannolikt att det är problemet

Skickades från m.sweclockers.com

Visa signatur

Citera för svar!|Fraktfritt hos INET|Min hemsida
Fractal Design Define R3|Corsair AX 850W|Gigabyte Nvidia GeForce GTX 570|Corsair Vengeance 1600MHz 2x4GB|ASRock P67 Extreme4|Intel Core i5 2500K|2x Samsung Spinpoint F3 1TB|Samsung Blu-Ray läsare
Nikon D7000|Nikon 60mm macro|Nikon 18-70|Nikon 55-300|Nikon 10.5 Fisheye

Permalänk
Medlem
Skrivet av phroggyy:

Elementet laddas in dynamiskt, ja. Det gör dock även skriptet. Funktionen körs alltid efter att objektet laddats in, så känns osannolikt att det är problemet

Skickades från m.sweclockers.com

Det är högst sannolikt att det är problemet.

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB

Permalänk
Medlem
Skrivet av celoz:

Det är högst sannolikt att det är problemet.

Trots att skriptet körs efteråt?

Visa signatur

Citera för svar!|Fraktfritt hos INET|Min hemsida
Fractal Design Define R3|Corsair AX 850W|Gigabyte Nvidia GeForce GTX 570|Corsair Vengeance 1600MHz 2x4GB|ASRock P67 Extreme4|Intel Core i5 2500K|2x Samsung Spinpoint F3 1TB|Samsung Blu-Ray läsare
Nikon D7000|Nikon 60mm macro|Nikon 18-70|Nikon 55-300|Nikon 10.5 Fisheye

Permalänk
Medlem
Skrivet av phroggyy:

Trots att skriptet körs efteråt?

Det skadar väl inte att pröva? Men ja, rent generellt så är det .on() som gäller för alla dynamiskt inlästa element. Generellt sett så är det även en bra idé att i först hand vända sig till dokumentationen: http://api.jquery.com/on/

Citat:

Event handlers are bound only to the currently selected elements; they must exist on the page at the time your code makes the call to .on(). To ensure the elements are present and can be selected, perform event binding inside a document ready handler for elements that are in the HTML markup on the page. If new HTML is being injected into the page, select the elements and attach event handlers after the new HTML is placed into the page. Or, use delegated events to attach an event handler, as described next.

Delegated events have the advantage that they can process events from descendant elements that are added to the document at a later time. By picking an element that is guaranteed to be present at the time the delegated event handler is attached, you can use delegated events to avoid the need to frequently attach and remove event handlers. This element could be the container element of a view in a Model-View-Controller design, for example, or document if the event handler wants to monitor all bubbling events in the document. The document element is available in the head of the document before loading any other HTML, so it is safe to attach events there without waiting for the document to be ready.

In addition to their ability to handle events on descendant elements not yet created, another advantage of delegated events is their potential for much lower overhead when many elements must be monitored. On a data table with 1,000 rows in its tbody, this example attaches a handler to 1,000 elements:

$( "#dataTable tbody tr" ).on( "click", function() { alert( $( this ).text() ); });

A delegated-events approach attaches an event handler to only one element, the tbody, and the event only needs to bubble up one level (from the clicked tr to tbody):

$( "#dataTable tbody" ).on( "click", "tr", function() { alert( $( this ).text() ); });

Visa signatur

CPU: Intel i5 2500K @ 4,7GHz Mobo: Asus P8Z68-V
GPU: Asus STRIX 970 RAM: 8GB Corsair Vengence 1600 MHz CL9
PSU: OCZ ModXStream 700W Chassi: NZXT Phantom

Citera så att jag hittar tillbaka!

Permalänk
Medlem

Du ska använda dig av .on i detta fallet.

Visa signatur
Permalänk
Medlem