我觉得我可能错过了什么或者还没有掌握jQuery的基本知识。我已经搜索了几个小时,但是还没有找到我的问题的答案。
我正在升级一个旧网站,使用jQuery,并且许多链接调用JavaScript的onClick
函数并传递多个参数,如下面的示例:
<a href="#" onclick="displayData('Book Title', 'ISBN', 'dateOfPublishing', 'Price');">View Details</a>
问题在于我已经使用各种jQuery代码更新了旧的
displayData
函数,而displayData
函数位于标签内。
$(document).ready(function() {
});
代码中出现了问题,似乎阻止了使用onClick
调用displayData
函数,因为它提示对象期望。我已将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 的 click 函数,类似于:$('a.reviewLink').click(function() {
displayData(parameters go here....);
});
我不知道如何从链接中传递参数给函数,因为它们不再在HTML的onclick
属性中。
如果我继续在链接中使用onclick
属性,并将displayData(params)
移出$(document).ready()
代码块,它可以正常工作,但是一旦我尝试引用$(document).ready()
代码块内的其他函数,例如DisplayReviews(param)
,就会出现可怕的“对象期望”错误。
我不知道这是否有意义...抱歉如果有些混乱,我不是世界上最好的程序员,也不一定知道所有术语,所以尽我所能地解释。希望你能帮忙。
非常感谢
onclick
属性中提取参数? - Anurag