jQuery - 如果链接具有特定ID,则运行if函数的if子句

时间:2012-10-29 21:05:06

标签: jquery

如果点击的链接是artist_link,我需要运行一个脚本。我需要这样做的原因是因为我有一个历史api脚本,如果单击此链接,则需要运行脚本。它在页面加载时运行,但由于内容中的历史api ajaxes没有页面加载。

这是我拥有的;

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

好的,我应该解释一下。它必须是if子句,因为脚本只会运行 IF ,单击的链接具有该特定ID。该子句在AJAX请求中,该请求是我的历史api脚本的一部分。

$.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) {

2 个答案:

答案 0 :(得分: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)
   }
});

答案 1 :(得分:1)

如果您在页面加载后动态添加HTML元素,请使用此

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