1

クリックされたリンクがartist_link. これを行う必要があるのは、履歴 API スクリプトがあり、このリンクがクリックされた場合にスクリプトを実行する必要があるためです。ページの読み込み時に実行されますが、履歴 API がコンテンツで ajax を実行するため、ページの読み込みはありません。

これが私が持っているものです。

if ($('a').attr('id') == 'artist_link'){ alert ('hello'); }

わかりました、私はこれを説明すべきでした。クリックされたリンクにその特定の ID がある場合にのみスクリプトが実行されるため、if 句である必要があります。この句は、履歴 API スクリプトの一部である AJAX 要求内にあります。

$.ajax({
    url: url,
    type: 'GET',
    dataType: "html",
    success: function (responseData) {

        $("#main").hide().html($("#load", responseData)).fadeIn(500); //fadeIn new page
        if (url =='Home'){
         $.ajax({
         type: "GET",
         url: "AJAX/request_feed.js",
         dataType: "script"
         });
        }
        if (url =='Discover'){

         $.ajax({
         type: "GET",
         url: "AJAX/get_artists.js",
         dataType: "script"
         });

         }

         if ($('a').attr('id') === 'artist_link'){ alert ('hello'); }   
    },
    error: function (jqXHR, textStatus, errorThrown) {
        window.location.replace("404");
    }
});

アップデート:

また、クリック機能は履歴スクリプトの最初にあるため、aクリックされたものがその特定の ID を持っているかどうかを判断するだけで済みます

$(document).on("click", "a", function (event) {
4

2 に答える 2

3

クリックされたリンクが artist_link の場合、スクリプトを実行する必要があります

そして、ID をターゲットにしてクリック機能を設定するだけでは何が問題なのですか?

$("#artist_link").on('click', function() {
    alert('hello');
});

編集:

$(document).on("click", "a", function (event) {
   //do ajax stuff here
   if (event.target.id=='artist_link') {
       //do some stuff if the right link was clicked ...
       //make sure you don't redefine the event, and it will be available in
       //the ajax functions scope as well (as long as it's inside the click function)
   }
});
于 2012-10-29T21:06:33.783 に答える
1

ページの読み込み後にHTML要素を動的に追加する場合は、これを使用してください

$(document).on('click', '#artist_link', function() {
    alert('hello');
});
于 2012-10-29T21:08:23.207 に答える