6

私は以下で抱えている問題に相当するものを考え/探していましたが、何も見つかりませんでした。代わりに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>

私はjQueryvarリクエストタイプのものをやりたいのですが。onclick="request(this)jQueryを使用したいと思います。

4

4 に答える 4

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>
于 2009-09-12T00:09:54.450 に答える
2

このような?私は何かが欠けている/理解していないと思いますが...

$('#about').click( function(evt) {
   request(this);
 });
于 2009-09-11T23:53:30.413 に答える
2

便宜上、 $ オブジェクトに追加のメソッドを定義できます

$.getElementById = function(id){
    return $('#'+id).get(0);
};

その後、すべての通話を次から変更できます

document.getElementById

$.getElementById

これには多くの注意事項がありますが、状況によっては役立つ場合があります。

于 2012-01-25T18:19:54.697 に答える
0

これ?私はあなたが望むものを完全に手に入れるかどうかわからない

function request(element)
{
    $(element).doSomething();
    return false;
}

によって呼び出されます:

onclicked="return request(this);"
于 2009-09-11T23:56:18.693 に答える