我一直在思考/寻找下面我遇到的问题,而且找不到任何东西。 有没有办法可以重写这个以与jQuery一起使用?
代码的前半部分。
<a href="link.php?test=true" onclick="request(this)" target="_blank">
<a id="step2" href="javascript:alert('NOT FINISHED!');">
代码的后半部分。
<script language="javascript">
var requests = 16;
function request(self)
{if(self.href != "#")
requests -= 1;
self.childNodes[0].src = "images/clear.gif";
if(requests === 0)
document.getElementById("step2").href = "next.php";}
</script>
我想做一个jQuery var请求类型的东西。我希望onclick="request(this)
能够使用我的jQuery。
答案 0 :(得分:10)
您的问题(标题)的答案是替换
document.getElementById('about').href = '#';
与
$('#about').attr('href','#');
我不知道这是否真的可以帮助你解决问题,因为我真的不知道你想要做什么。根据您的评论和代码示例,您似乎正在尝试执行某种向导,但我不知道在您发布的内容后它将如何实际工作。
更新
可能是这样的:
<a href="link.php?test=true" onclick="request(this)" target="_blank" class='request'></a>
<a id="step2" href="next.php">Step 2</a>
<script language="javascript">
$(function() {
var requests = 16;
$('#step2').click( function() {
alert('Not finished');
return false;
});
$('.request').click( function() {
var $this = $(this); // save jQuery reference to element clicked
// swap indicator image source
$this.find('img:first').attr('src','images/clear.gif');
// if the number of flipped indicators equals the number of requests
// remove the click handler from the step 2 link
// this removes the alert and allows the user to proceed
if ($('.request img[src="images/clear.gif"]').length == requests) {
$('#step2').unbind('click');
}
...do something with the href for this request via ajax???
// replace this handler with one that simply returns false
// and remove the href since we're done with this request
$(this).unbind('click').attr('href','#').click( function() { return false; } );
// stop the default action for the request
return false;
});
</script>
答案 1 :(得分:2)
喜欢这个?我想我错过了/不理解某事......
$('#about').click( function(evt) {
request(this);
});
答案 2 :(得分:2)
为方便起见,您可以在$ object
上定义一个额外的方法$.getElementById = function(id){
return $('#'+id).get(0);
};
然后您可以从
更改所有来电document.getElementById
到
$.getElementById
有很多警告,但根据您的具体情况,这可能很有用。
答案 3 :(得分:0)
此?不确定我完全得到你想要的东西
function request(element)
{
$(element).doSomething();
return false;
}
由:
调用onclicked="return request(this);"