我想我可能会错过某些东西或者没有掌握jQuery的基础知识。我已经搜索了几个小时,但还没有找到我的问题的答案。将javascript onclick事件更改为jQuery点击并仍然传递参数
我有一个旧的网站,我升级到使用jQuery和许多链接调用JavaScript onClick
调用,通过多个参数,如下面的例子:
<a href="#" onclick="displayData('Book Title', 'ISBN', 'dateOfPublishing', 'Price');">View Details</a>
的问题是我已经更新了旧displayData
功能与各种jQuery代码和displayData
功能是
$(document).ready(function() {
});
代码中,这似乎防止功能displayData
采用t被称为他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)
。
我不知道这是否有任何意义....抱歉,如果它很混乱,我不是世界上最好的程序员,也不知道所有术语必然,所以尽我所能解释。我希望你能帮忙。
非常感谢
可以修改HTML或者你需要从现有的'onclick'属性提取参数? – Anurag 2010-09-02 21:28:47
我可以修改HTML,我只是不确定是否坚持现有的onclick或尝试和更好地利用jQuery并以其他方式提取参数。 HTML是动态生成的,因此此时需要附加参数,因此我曾使用onclick属性。谢谢! – Cydaps 2010-09-02 21:38:45
您可以动态创建必要的JavaScript(即附加点击处理程序)。 – 2010-09-02 21:46:56