Wątek przeniesiony 2015-10-02 17:19 z Webmastering przez dzek69.

Funkcja w osobnym pliku

0

Witam.
W jaki sposób prawidłowo wywołać funkcję umieszczoną w osobnym pliku .js?
Poniższy kod po naciśnięciu na przycisk Test 02 wyświetla w prawidłowy sposób okno, jednak po naciśnięciu na przycisk Test 01 nie następuje żadna reakcja.
Sortowanie tabeli działa bez problemów, więc plik table.js jest prawidłowo wczytany.

table.js

$(function(){
  $('#keywords').tablesorter(); 
});

function test_01() { 
		prompt("Test 01", "True");
}

table.php

<?php

	include 'tableFunctions.php';
	include 'loginFunctions.php';
	
	if (!IsLogged())
	{
		header('Location: ../login.html');
		die();
	}
	else 
	{
			
?>
		<!DOCTYPE html>
		<html >
			<head>
				<meta charset="UTF-8">
			    <title>Table</title>
				      
				<link rel="stylesheet" href="../css/table.css"> 
			</head>
		<body>
		 <div id="wrapper">
		  <h1>Events</h1>
		  	    
		<?php
		
			if (true)
			{	
				$tableName = "Events";
				
				$values = GetDataFromTable($tableName, array());
				$columnNames = GetColumnNamesFromTable($tableName);		
				
				DrawTable($columnNames, $values);
			}
		?>
		 </div> 
			<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
			<script type="text/javascript" src="../js/resources/jquery.tablesorter.min.js"></script>	
			<script src="../js/table.js"></script>  
			  
			  <SCRIPT language="javascript">
			  	function test_02() 
			  	{
			  		prompt("Test 02", "True");
			  	}
			  </SCRIPT>
			  <INPUT type="button" value="Test 01" onclick="test_01()" />
			  <INPUT type="button" value="Test 02" onclick="test_02()" />
				
		</body>
<?php 
	}
?>
1
  1. Coś nam nie pokazałeś. Ten kod będzie działał, nawet sprawdziłem to -> htdocs.rar. Coś znaczącego, co psuje działanie musiałeś pominąć tworząc ten post.
  2. Używaj konsoli, dopiero potem forum. Tam zazwyczaj masz wypisany błąd.
  3. Zmień źródło z którego się uczysz, bo to jest mocno nieaktualne (tagi dużymi literami, ale niby doctype html5, śmieszny atrybut language, który nie istnieje), do tego mieszkanka htmla i ładowania js-ów
0

Dziękuję za pomoc, problem rozwiązany.

Po wykonaniu kilku prób, znalazłem błąd. Plik testowałem bezpośrednio na serwerze, otwierałem stronę za pomocą przeglądarki (Chrome), przeglądarka korzystała ze wcześniejszej wersji pliku, przez co nie wykrywała funkcji test_01. Po uruchomieniu strony w karcie incognito problem zniknął. Podobny problem zauważyłem z plikami .css, jednak nie sądziłem że może on dotyczyć też plików .js.

Odnośnie źródła kodu, część kodu odpowiedzialna za html i css pochodzi z gotowego szablonu do tabeli, a kod dotyczący javascript pochodził ze strony o dynamicznym dodawaniu rekordów do tabeli za pomocą javascript (http://viralpatel.net/blogs/dynamically-add-remove-rows-in-html-table-using-javascript/).

1 użytkowników online, w tym zalogowanych: 0, gości: 1