2011-06-12 3 views
0

У меня есть простой яваскрипта код, который заменяет содержимое страницы .... по содержанию другого файла (test2.html)Замена текста HTML-страницы с помощью JQuery

Код:

$(document).ready(function(){ 
    $("[href='#']").click(function() { 
     function getcontent(url, id) { 
      $("#id").load("url"); 
     } 
    }); 
}); 

сейчас нахожусь используя

<div id = "content">     
<p> REPLACE </p> 
</div> 
<a href="#" onClick="getcontent('test2.html', 'content')">click here</a> 

Так что теперь при нажатии кнопки click hereREPLACE следует заменить содержание test2.html ... но это не происходит ... Я включил нужный jquery.js файл в моем сценарии ..

ответ

0
$('#' + id).load(url); 

В текущем методе выше, вы передаете строковые литералы, а не сами переменные.

+0

Это не будет работать. 'getcontent' не определяется в глобальной области. –

+0

, а также его не работает ... – RanRag

+0

@Felix: как определить его в глобальном масштабе – RanRag

1

Нет, это не сработает. getcontent - это функция, определенная в определенной области действия - функция обратного вызова обработчика щелчка. Он недоступен в глобальной области - области, которую получает метод onClick.

Вы должны использовать подлинный обработчик щелчка, возможно, данные настройки с использованием атрибутов данных:

$('[href="#"]').click(function() { 
    $('#' + $(this).data('id')).load($(this).data('url')); 
}); 

Используя следующий HTML:

<a href="#" data-url="test2.html" data-id="content">click here</a> 
+0

его не работает, если вы можете плз взглянуть на мой полный код ... [link] (http://pastebin.com/ysvLB91H) – RanRag

+0

Происходит ли запрос HTTP? Посмотрите на сетевой монитор, например. Firebug или консоль Chrome – lonesomeday

+0

моя консоль хром не показывает ничего, и мой сервер Python говорит: код 404, сообщение Файл не найден «GET /favicon.ico HTTP/1.1» 404- – RanRag

1

У вас есть странные настройки. Функция getcontent не определена в глобальной области, она не может быть найдена обработчиком событий onclick в HTML. Есть и другие проблемы.

я предлагаю что-то вроде:

<a href="#content" rel="test2.html">click here</a> 

и

$(function(){ 
    $("a[href^='#']").click(function(){ 
     $(this.href).load(this.rel); 
    }); 
}); 
0

Вы, кажется, непонимание того, что некоторые части кода делают. Кроме того, я бы рекомендовал дать вашему href реальный идентификатор, чтобы упростить работу. Вам не нужно использовать метод jQuery «click», а также назначить обработчик onclick inline в HTML.

Попробуйте вместо этого:

<div id = "content">     
    <p> REPLACE </p> 
</div> 
<a id="clickThis" href="#">click here</a> 

$(document).ready(function() { 
    $('#clickThis').click(function() { 
     $('#content').load('test2.html'); 
    }); 
}); 

Ваш код с некоторыми комментариями:

$(document).ready(function(){ 
    // this will assign a click handler, you don't need an 'onclick' 
    // attribute on the anchor tag also 
    $("[href='#']").click(function() { 
     // but what does your click handler do? 
     // It defines a function that is never called. 
     function getcontent(url, id) { 
      $("#id").load("url"); 
     } 
    }); 
}); 
Смежные вопросы