У меня есть веб-страница с формой для размещения комментариев (текстовое поле и текстовая область + кнопка отправки). Я хотел, чтобы форма была сначала невидимой и показывала только ссылку «showform», чтобы сделать форму видимой, а также показать ссылку «hideform». При щелчке по ссылке «hideform» необходимо сделать невидимой ссылку формы и hideform
, а ссылку showform снова сделать видимой.
Я попробовал это
<html>
<head>
<title>formopen demo</title>
<link href="formopen.css" type="text/css" rel="stylesheet">
</head>
<script src="jquery-1.4.2.js"></script>
<script src="formopen.js"></script>
<body>
<div class="myjsdemo">
<a href="#" class="showaddcommentformlink">show add commentform</a>
<a href="#" class="hideaddcommentformlink">hide add commentform</a>
<div class="form">
<input type="text" value="" name="myinput" id="myinput"/>
<textarea name="content" rows="2" cols="20" id="content" > </textarea>
</div>
</div>
</body>
</html>
formopen.css
.myjsdemo .form{display:none;}
.myjsdemo .hideaddcommentformlink{display:none;}
formopen.js
$(function(){
$('.myjsdemo.showaddcommentformlink').click(
function(){
$(this).hide();
$('.myjsdemo.hideaddcommentformlink').show();
$('.myjsdemo.form').show();
return false;
}
);
$('.myjsdemo.hideaddcommentformlink').click(
function(){
$(this).hide();
$('.myjsdemo.showaddcommentformlink').show();
$('.myjsdemo.form').hide();
return false;
}
);
});
Однако ничего не происходит, когда я нажимаю на ссылку... У меня есть очень минимальные знания javascript.. Если кто-то может исправить любые ошибки в этом коде, это было бы большой помощью..
Я помещаю все файлы в один каталог и открываю HTML-файл в firefox.
Благодаря
-121--854432- Я создал фрагмент кода, который состоит из динамической библиотеки ( lib.c
) и основного исполняемого файла ( main.c
).
В обоих файлах определяется глобальная переменная с именем int global
.
Не очень умно, но это не вопрос.
При компиляции динамической библиотеки опция -fPIC
кажется обязательной:
gcc lib.c -fPIC -shared -o lib.so
В противном случае я получаю:
/usr/bin/ld: /tmp/ccpUvIPj.o: relocation R_X86_64_32 against '.rodata' can not be used when making a shared object; recompile with -fPIC
Когда я компилирую исполняемый файл это не так.
gcc main.c -fPIC -ldl
gcc main.c -ldl
Оба работают, но имеют разное поведение я не могу объяснить, не могли бы вы?:
с -fPIC, глобальными в main.c и глобальными в lib.c являются одни и те же переменные:
global main: 23 (0x601050)
global lib: 23 (0x601050)
без -fPIC глобальный в lib.c не соотносится с глобальным в main.c:
global main: 23 (0x601048)
global lib: 0 (0x7f7742e64028)
Вот источник:
lib.c
#include <stdio.h>
#include <stdlib.h>
int global;
int f_one() {
printf("global lib: %d (%p)\n", global, &global);
return EXIT_SUCCESS;
}
main.c
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
void * handle;
int global;
int main() {
int q = 7;
int (* f_one_p)(int a) = NULL;
global = 23;
handle = dlopen("./lib.so", RTLD_NOW);
if (handle == 0) {
return EXIT_FAILURE;
}
f_one_p = dlsym(handle, "f_one");
printf("global main: %d (%p)\n", global, &global);
f_one_p(q);
return EXIT_SUCCESS;
}
gcc --версия: gcc (Ubuntu/Linaro 4,5 .2-8ubuntu4) 4,5,2
uname -a: Linux xxx 2.6.38-11-generic # 48-Ubuntu SMP пт 29 июля 19:02:55 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
изменить : код, протестированный в архитектурах SUN/sparc и x86/Linux с тем же типом неожиданных общих глобальных переменных (с -fPIC).