jQuery 链接不起作用

jQuery links are not working

本文关键字:不起作用 链接 jQuery      更新时间:2023-09-26

我有一些jQuery可以建立链接,但是链接应该触发更多的jQuery,但它们没有,这是代码:

$(".divisionLinks").click(function () { 
  $('.show_hide_division').show();
  $('.show_hide_main').html($(this).html()+ " is Selected");
  //Load the division xml
  var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.load("xml//division//"+ $(this).html() + ".xml");
  theEnvNodes = xmlDoc.getElementsByTagName('ENVIRONMENT');
  //Make the html
  theNewHTML = "<ul>";
    for (i = 0; i<theEnvNodes.length; i++){
    theNewHTML = theNewHTML + "<li><a class='"environmentLinks'" href='"#'">";
    theNewHTML = theNewHTML + theEnvNodes[i].childNodes[0].childNodes[0].nodeValue;
    theNewHTML = theNewHTML + "</a></li>";
    }
  theNewHTML = theNewHTML + "</ul>"; 
  $('.environmentButtons').html(theNewHTML);
});
$(".environmentLinks").click(function () { 
  $('.show_hide_environment').show();
  $('.show_hide_division').html($(this).html()+ " is Selected");
});

因此,划分链接有效,但环境链接不起作用。我一直在阅读它可能是jQuery索引.environmentLink类的东西。但我不知道,也不知道有什么解决方法。提前感谢您的帮助。

由于您是动态添加 .environmentLinks,因此您拥有的点击事件不会被附加,因为在加载页面时这些链接不存在。如果您使用的是最新版本的 jQuery,请使用 .on() 将 click 事件绑定到 .environmentLinks 链接。

$("body").on('click', '.environmentLinks', function () { 
  $('.show_hide_environment').show();
  $('.show_hide_division').html($(this).html()+ " is Selected");
});

理想情况下,您希望将 $("body") 替换为比 body 元素更接近它的父元素.environmentLinks

事件处理程序仅绑定到当前选定的元素;它们 代码调用 .on() 时必须存在于页面上。 要确保元素存在且可以选择,请执行事件 在文档就绪处理程序内绑定,用于 页面上的 HTML 标记。如果将新的 HTML 注入到页面中, 选择元素并在新 HTML 之后附加事件处理程序 放置在页面中。或者,使用委托事件附加事件 处理程序,如下所述。

您必须使用例如:

$(".environmentLinks").live('click', function () { 
  $('.show_hide_environment').show();
  $('.show_hide_division').html($(this).html()+ " is Selected");
});

或:

$("body").on('click', ".environmentLinks", function () { 
  $('.show_hide_environment').show();
  $('.show_hide_division').html($(this).html()+ " is Selected");
});
我认为这是因为

环境链接是稍后生成的,并且您的单击功能与DOM绑定。

试试这个:

$(".environmentLinks").live("click", function(){
 $('.show_hide_environment').show();
 $('.show_hide_division').html($(this).html()+ " is Selected");
});

这将"刷新"您的点击事件。