0

私の質問はこれと同じです

hrefイベント 'clicked' でトリガーされない同じ問題にも直面しました。次にalt、要素がに変更されましたspan。これが私のコードです

<li><h2><span id='aa' alt="#inbox"><span>Inbox</span></span></h2></li>  

この行は の 2 番目の子です ul。ページがロードされたときにこの行をトリガー/クリックしたい。

しかし、このスパン (#aa) のクリック イベントをトリガーする方法を知りたいです。次のコードを試してみましたが、機能しませんでした。
初挑戦:

var href = $('#aa').attr('alt');
      window.location.href =href; // this gave me 404 error   

2回目の試行:

 $('#aa').trigger("click")   // this has no change

上記のli>spanをクリックすると編集機能が実行されます。ページが読み込まれたときに、li のスパンが自動的にクリックされるようにします。この質問の回答は、 を使用するといくつか問題があると言っています。そのため、代わりにタグ<a href>を使用しました。span私はjQuery 1.6を使用しています

4

4 に答える 4

3

URL を に変更しようとしたため、最初の試行で 404 が返されました#inbox。実際にハッシュを現在の URL に追加したいと思っていると思います。その場合は、次のlocation.hashプロパティを使用できます。

window.location.hash = href;

aの代わりに要素を使用することもできると思います。spanこれは、デフォルトでこの動作が行われ、クリックイベントをバインドして処理する必要がないためです。

于 2012-04-19T12:25:46.577 に答える
1

編集A:タグではなくSpanタグで機能するURLを指しているもう1つのこと、href要素でクリックイベントをトリガーするJquery方法これは、質問で言及したAタグ用です。

クリック イベントをトリガーしている場合は、トリガー関数を使用してトリガーするよりもクリック イベントをスパンにバインドする必要があります。

クリックイベントを書く

$('#aa').click( function() 
    {
             alert('span clicked');
   });

トリガーイベント

$('#aa').trigger("click");
于 2012-04-19T12:25:09.667 に答える
1

私が正しく理解していれば、これで問題は解決します。

このようにスパンするクリック可能なプロパティを与えます。

$('#aa')
        .bind('click', function () { 
               .....
});

そして、document.ready でこのように呼び出します

$('#Control_2').click();
于 2012-04-19T12:53:11.430 に答える
1

最も簡単な解決策は、現在の URL にハッシュ タグを追加することだけが必要な場合は、スパンをアンカー タグに変更して、読み込み後のクリックを処理することだと思います。次に、ページの読み込み時に必要なリンクを選択するための jquery を少しだけ使用できます。

<!doctype html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(function() {
        window.location.hash = $('#second').attr('href');
    });
    </script>
</head>
<body>
    <ul>
        <li><a href="#first">First</a></li>
        <li><a href="#second" id="second">Second</a></li>
    </ul>
</body>
</html>

それが望ましくなく、クリック時にさらに多くのコードを実行したい場合は、クリック ロジックを関数に分離し、ページの読み込み時に次のように呼び出すことができます。

<!doctype html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(function() {
        //your function that does stuff on click
        function doStuff(item) {
            window.location.hash = $(item).attr('href');
            //cancel the click
            return false;
        }

        //call the function on page load
        doStuff($('#second'));

        //call the function on click
        $('#nav a').click(function() { doStuff(this); });
    });
    </script>
</head>
<body>
    <ul id="nav">
        <li><a href="#first">First</a></li>
        <li><a href="#second" id="second">Second</a></li>
    </ul>
</body>
</html>
于 2012-04-19T15:24:44.620 に答える