Я думаю, что я что-то упустил или не понял основы jQuery. Я искал несколько часов, но пока не нашел ответа на свой вопрос.
У меня есть старый веб-сайт, который я обновляю для использования jQuery, и многие ссылки вызывают вызов JavaScript onClick
, который передает несколько параметров, как показано в следующем примере:
<a href="#" onclick="displayData('Book Title', 'ISBN', 'dateOfPublishing', 'Price');">View Details</a>
Проблема в том, что я обновил старую функцию displayData
с различным кодом jQuery, а функция displayData
находится в пределах
$(document).ready(function() {
});
код, и это, кажется, предотвращает вызов функции displayData
с использованием onClick
, как говорится ожидаемый объект . Я переместил функцию displayData
из $(document).ready()
, но таким образом это предотвратило ссылки на другие функции в коде $(document).ready()
, на которые ссылаются.
Ниже приведен пример того, что у меня есть:
<script>
$(document).ready(function() {
function displayData(title, isbn, dt, price) {
// there's a call to jQuery AJAX here
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WebServices/BookService.asmx/GetBookReviews",
data: "{isbn: '" + isbn + "'}",
dataType: "json",
success: function(msg) {
DisplayReviews(msg.d);
}
});
return false;
}
function DisplayReviews(data) {
// data normally formatted here and passed to formattedData variable
var formattedData = FormatData(data);
$('#reviewScreen').html(formattedData);
}
function FormatData(data) {
// function reformats data... code removed for space..
return data;
}
});
</script>
<table>
<tr><td><a href="#" class="reviewLink" onclick="displayData('Book Title', '1234141HABJA1', '2010-01-12', '$15.99');">View Reviews</a></td><td>Book Title</td></tr>
<tr><td><a href="#" class="reviewLink" onclick="displayData('Book TItle 2', '516AHGN1515', '1999-05-08', '$25.00');">View Reviews</a></td><td>Book Title 2</td></tr>
</table>
Что я хотел бы сделать, так это уметь удалить onclick="displayData();"
внутри ссылки и вместо этого использовать ссылку на jQuery, что-то вроде
$('a.reviewLink').click(function() {
displayData(parameters go here....);
});
Я просто не знаю, как я передал бы параметры в функцию из ссылки, поскольку их больше не будет в атрибуте HTML onclick
.
Если я продолжу использовать атрибут onclick
в ссылке и переместу displayData(params)
из блока кода $(document).ready()
, он будет работать нормально, но в тот момент, когда я пытаюсь ссылаться на любую из других функций в пределах $(document).ready()
код блока Я получаю страшный ожидаемый объект ошибка с другими функциями, такими как DisplayReviews(param)
.
Я не знаю, имеет ли это какой-то смысл ... извините, если это сбивает с толку, я не лучший программист в мире и не знаю всей терминологии обязательно, поэтому постарался объяснить как мог. Я надеюсь, что вы можете помочь.
Большое спасибо