webForumDet fria alternativet

jquery auto click event.. får det inte att fungera

JavaScript

51 svar · 6 184 visningar · startad av juto · sida 2 av 3

Frågan, av juto

Hejsan! Jag har en ajax applikation där jag försöker trigga ett click event Jag använder jquery 1.42 och får inga felmeddelanden i firebug etc. \<script type="text/javascript"\> $(document).ready(function() { $('#defaultlanguage').trigger('click'); }); \</script\> I min ajax applikation har jag: \<?php $languages = tepgetlanguages(); if(count($languages) \> 1) { foreach ($languages as $am

Läs frågan i sin helhet →
Medlem sedan juni 20019 519 inlägg
#21

juto skrev:

kommer den koden att ge auto click?

Den kommer clickar på #admin_language ifrån AJAX callbacken och triggar onclick

orsaken till dubbla onclick är att aktuell landsflagga får en "border" i avvikande färg...

return false kommer aldrig köras då du säger att onclick skall vara något annat direkt efter, så det är onödigt att skriva så.

Medlem sedan apr. 201028 inlägg
#22

Testade utan succes...

  
  <div>
	<h1>With jquery</h1>
	<a href="attributeManager.php">Languages</a>
  </div>
  
<script type="text/javascript">
$(document).ready(function() {
	$(".jqAjax").click(function ( e ) {
		e.preventDefault();
		
		$.ajax({
			url: this.href,
			success: function ( data ) {
				//DOM! + trigger inline onclick.
				$("#admin_language", "<p>" + data + "<\/p>")[0].onclick(); 
			}
		});
  
	});
	});	
</script>
Medlem sedan juni 20019 519 inlägg
#23

du har inte en CSS klass ".jqAjax", så den kommer aldrig att köra den...

Medlem sedan apr. 201028 inlägg
#24

okej.. jag lade in den classen i css, var ska den vara någonstans i koden då?

Medlem sedan juni 20019 519 inlägg
#25

$(".jqAjax") <= letar efter alla element med en klass som heter jqAjax, lägg på de a-element du vill ha din auto-click metod med.

Medlem sedan apr. 201028 inlägg
#26

Gjorde så här o det fungerade inte

		<td  class="jqAjax">
  <div><a href="attributeManager.php">		
		<?php

		$languages = tep_get_languages();

		if(count($languages) > 1) {

      echo tep_image(DIR_WS_IMAGES . 'icon_exclamation.png', IMAGE_ICON_EXCLAMATION).'&nbsp;'.AM_AJAX_SELECT_PREFERED_LANGUAGE.'<br>';

			foreach ($languages as $amLanguage) {
//Begin New code set the default language
if ($amLanguage['id'] == AM_DEFAULT_LANGUAGE_ID){
			?>
<!--Bug fixed Original & modified to//-->

			&nbsp;<input id="admin_language" type="image" src="<?php echo DIR_WS_CATALOG_LANGUAGES . $amLanguage['directory'] . '/images/' . $amLanguage['image'];?>" title="<?php echo AM_AJAX_CHANGES;?>" 
      <?php echo ($attributeManager->getSelectedLanguage() == $amLanguage['id']) ?  
      'style="padding:1px;border:1px solid #006600;" onclick="return false;"' : 'onclick="return amSetInterfaceLanguage(\''.$amLanguage['id'].'\');"';?> >

			<?php
}else{
//End new code
			?>
<!--Bug fixed Original//-->
			&nbsp;<input id="not_admin_language" type="image" src="<?php echo DIR_WS_CATALOG_LANGUAGES . $amLanguage['directory'] . '/images/' . $amLanguage['image'];?>" title="<?php echo AM_AJAX_CHANGES;?>" 
      <?php echo ($attributeManager->getSelectedLanguage() == $amLanguage['id']) ? 
      'style="padding:1px;border:1px solid #0000ff;" onclick="return false;"' : 'onclick="return amSetInterfaceLanguage(\''.$amLanguage['id'].'\');"';?> >
			<?php
			}//Belongs to the new code set the default language
			}
		}

 		?>
  </a>
  </div>
		
 		
		</td>
Medlem sedan juni 20019 519 inlägg
#27
<td  class="jqAjax">

har ju inte onclick event på sig... sen är ju HTML koden felaktig, den validera inte + är inte detta ditt AJAX kod som du få tillbaka? det skall du inte röra... det är din vanliga HTML kod som skall göra ditt AJAX anrop som skall ha .jqAjax (a-element som har ett href attribut).

Medlem sedan apr. 201028 inlägg
#28

testade detta åxå, fortfarande utan succe

  <div><a class="jqAjax" href="attributeManager.php">
			&nbsp;<input id="admin_language" type="image" src="<?php echo DIR_WS_CATALOG_LANGUAGES . $amLanguage['directory'] . '/images/' . $amLanguage['image'];?>" title="<?php echo AM_AJAX_CHANGES;?>" 
      <?php echo ($attributeManager->getSelectedLanguage() == $amLanguage['id']) ?  
      'style="padding:1px;border:1px solid #006600;" onclick="return false;"' : 'onclick="return amSetInterfaceLanguage(\''.$amLanguage['id'].'\');"';?> >
			<?php
}else{
//End new code
			?>
<!--Bug fixed Original//-->
			&nbsp;<input id="not_admin_language" type="image" src="<?php echo DIR_WS_CATALOG_LANGUAGES . $amLanguage['directory'] . '/images/' . $amLanguage['image'];?>" title="<?php echo AM_AJAX_CHANGES;?>" 
      <?php echo ($attributeManager->getSelectedLanguage() == $amLanguage['id']) ? 
      'style="padding:1px;border:1px solid #0000ff;" onclick="return false;"' : 'onclick="return amSetInterfaceLanguage(\''.$amLanguage['id'].'\');"';?> >
			<?php
			}//Belongs to the new code set the default language
			}
		}

 		?>
  </a>
  </div>

Den färdiga koden validerar :)

Medlem sedan juni 20019 519 inlägg
#29

Men vad försöker du göra nu? Vad är http://www.webforum.nu/showpost.php?p=1531350&postcount=28 för kod? Det är väl din AJAX HTML kod du få tillbaka? den skall ju inte ha jqAjax den skall vara den länk som skall hämta din AJAX data.

Medlem sedan apr. 201028 inlägg
#30

aj då, webforum kom nog bara när jag lade in koden inom html-taggar.

Jag lade in div-en med a-taggen så att den omslöt bilderna med flaggorna, så jag är helt snurrig nu... usch, vad svårt det är

Medlem sedan juni 20019 519 inlägg
#31

Jag menar vad är detta för kod, i länken jag skickade (är även inlägget direkt ovanför det inlägget). Upptäckte även att http://voigt.se/sandbox/wf/autoClick/ var lite galen, den nedre länken länkar bara vanligt (för att du skall kunna kolla AJAX html koden) är det detta du är ute efter?

Medlem sedan apr. 201028 inlägg
#32

Javscriptet

jag lade in diven och a-tagen med class="jqAjax" så att den omslöt flaggorna

javascriptet är detta som jag plockade från länken, plus att jag lade till parenteser som saknades:

<script type="text/javascript">
$(document).ready(function() {
	$(".jqAjax").click(function ( e ) {
		e.preventDefault();
		
		$.ajax({
			url: this.href,
			success: function ( data ) {
				//DOM! + trigger inline onclick.
				$("#admin_language", "<p>" + data + "<\/p>")[0].onclick(); 
			}
		});
  
	});
	});	
</script>

jag införde oxå ett \ för avslutet av p-taggen, tidy klagade annars

Medlem sedan juni 20019 519 inlägg
#33

Finns .jqAjax nu i den genererade koden ? Sen undviker du min fråga: "är det detta du är ute efter? " Om det är det, så få du nog visa genererad kod (men bäst hade det varit om du lägger upp så man kan köra koden och se vad det kan fela på.

Medlem sedan apr. 201028 inlägg
#34

jaaa .jqAjax finns i den genererade javascriptet. Ska den finnas på något annat ställe?

jag är ute efter att få clicket att utföras automatiskt, så jag slipper klicka själv på flaggan.

Om du vill köra koden, vilken kod vill du ha?

Medlem sedan juni 20019 519 inlägg
#35

Sara,

"auto-click" är inte samma sak som att klickar på en länk automatiskt efter att en annan AJAX anrop har körts.

jaaa .jqAjax finns i den genererade javascriptet. Ska den finnas på något annat ställe?

Menar du: $(".jqAjax"), så ser jag ju att den finns, men om du inte ha ett a-element med cssklassen jqAjax så finns det inga element som är click eventet för AJAX anropet som jag skrev i mitt exempel.

Om du vill köra koden, vilken kod vill du ha?

Så lite HTML kod som möjligt (men det som krävs för att kunna köra det du skulle vilja få igång), ingen PHP kod.

finns amSetInterfaceLanguage metoden alltid också?

Medlem sedan apr. 201028 inlägg
#36

classen finns i den genererade koden

<a href="attributeManager.php" class="jqAjax">
&nbsp;<input type="image" onclick="return amSetInterfaceLanguage('4');" title="Använda detta språk?" src="/includes/languages/svenska/images/icon.gif" id="admin_language">

&nbsp;<input type="image" onclick="return amSetInterfaceLanguage('1');" title="Använda detta språk?" src="/includes/languages/english/images/icon.gif" id="not_admin_language">

&nbsp;<input type="image" onclick="return amSetInterfaceLanguage('5');" title="Använda detta språk?" src="/includes/languages/espanol/images/icon.gif" id="not_admin_language">

&nbsp;<input type="image" onclick="return amSetInterfaceLanguage('6');" title="Använda detta språk?" src="/includes/languages/deutsch/images/icon.gif" id="not_admin_language">
</a>

amSetInterfaceLanguage finns också alltid...

Vet du vad om jag ger dig access till admin, kan det hjälpa?
I så fall behöver jag din ip-adress

jag kikade på html koden och den är så stor... *suck*

Medlem sedan apr. 201028 inlägg
#37

Nu är jag så himla trött, vill krypa under täcket. Jag återkommer i morgon. lite piggare

Medlem sedan juni 20019 519 inlägg
#38

juto skrev:

<a href="attributeManager.php" class="jqAjax">
&nbsp;<input type="image" onclick="return amSetInterfaceLanguage('4');" title="Använda detta språk?" src="/includes/languages/svenska/images/icon.gif" id="admin_language">

&nbsp;<input type="image" onclick="return amSetInterfaceLanguage('1');" title="Använda detta språk?" src="/includes/languages/english/images/icon.gif" id="not_admin_language">

&nbsp;<input type="image" onclick="return amSetInterfaceLanguage('5');" title="Använda detta språk?" src="/includes/languages/espanol/images/icon.gif" id="not_admin_language">

&nbsp;<input type="image" onclick="return amSetInterfaceLanguage('6');" title="Använda detta språk?" src="/includes/languages/deutsch/images/icon.gif" id="not_admin_language">
</a>

amSetInterfaceLanguage finns också alltid...

jag kikade på html koden och den är så stor... *suck*

Var kommer denna HTML koden ifrån, finns den alltid på sidan eller det är först efter att du har kört din ajax applikation? Om det är så, så är det helt fel. min kod förväntar sig att .jqAjax finns redan på sidan (och att den har ett href attribut).

Vet du vad om jag ger dig access till admin, kan det hjälpa?
I så fall behöver jag din ip-adress

Förmodligen, men det känns väl ändå bättre om du löser problemet själv ? ;)

Medlem sedan apr. 201028 inlägg
#39

Godmorgon, koden kommer efter att min ajax-applikation startat.
Skickar en mugg kaffe... [_])

Medlem sedan juni 20019 519 inlägg
#40

När körs ajax-"applikationen"? Direkt på sidan också? Min kod kör ajax anropet först när någon tryckte på a.jqAjax och anropet tillbaka från ajax anropet hämtar den upp #admin_language och kör click-eventet på den.

Sen skall ID:n vara unika "not_admin_language" finns på fler än ett ställe, behöver du ha ett sådant ID/klass-attribut alls?

264 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)