【问题标题】:My event click doesn't work我的事件点击不起作用
【发布时间】:2013-09-04 17:16:44
【问题描述】:

我的代码不起作用...有人可以帮助我吗?

function main() {

    var myvar = 'cool', myvar2 = 'good';

    $("#list").append("<li><a class='execute' href=#SMSCONTOUT?telefone=" + myvar + "<h4>" + myvar2 + "</h4></a></li>");

    $(".execute").click(function () {
        $("#SMSCONTOUT").css("display", "block"); 
    });
}

我的$(".execute") 不起作用...我的 div: "SMSCONTOUT" 没有出现...

【问题讨论】:

  • myvar2之后缺少;
  • 您遇到了什么错误,Fiddler 或 Chrome 开发工具应该告诉我们
  • 你有没有打电话给main()
  • @ChrisRockwell 是的 ...
  • 你仍然没有向我们展示一切:jsfiddle.net/VuM9R 我要做的是添加main() 并运行

标签: jquery events click


【解决方案1】:

活动委托我的朋友:

$("#list").on("click", ".execute", function(){

    alert(myvar);

});

【讨论】:

  • 为什么在这种情况下需要事件委托?在附加事件处理程序之前,.execute 似乎已经存在。如果是这样,为什么要更改为此修复任何问题?
  • 导致创建 DOM 时不存在与 .execute 类的链接。它是由 javascript 事后添加的。
  • @ChrisRockwell ... 很酷,但我已经编辑了真正的问题;)
【解决方案2】:

试试这个(你也忘了分号;):-

function main(){
var myvar, myvar2;

$("#list").append("<li><a class='execute' href='#SMSCONTOUT'?telefone="+myvar+"<h4>"+ myvar2 +"</h4></a></li>");

$("#list").on("click", ".execute", function(){
        alert(myvar);  
    });}

编辑

请查看JSFIDDLE(由 Chris Rockwell 添加)。这很好用!!!

【讨论】:

  • @ChrisRockwell:- 在这种情况下,只应更正分号 ;。我看过你的 JSFiddle。很好用!!!
  • 分号不是必须的,不会导致它无法运行
  • 我同意这是最佳做法,只是说这不是问题的根源
  • @ChrisRockwell:- 完全同意先生,这就是为什么我刚刚写了 OP 忘记写了 ;)
  • @ChrisRockwell:- 这对 OP Sir 有用!!!!也为 JSFiddle 添加了答案:)
【解决方案3】:

您没有在myvar 之后和&lt;h4&gt; 之前关闭您的&lt;a&gt; 标签,我会将href 值放在引号中:

$("#list").append("<li><a class='execute' href='#SMSCONTOUT?telefone=" + myvar + "'><h4>" + myvar2 + "</h4></a></li>");

目前附加的输出 html 如下所示:

<a class='execute' href=#SMSCONTOUT?telefone=help<h4>yep</h4></a>

有些浏览器比其他浏览器更擅长自动纠正这些类型的错误。

编辑后,只需使用:

$("#SMSCONTOUT").show();

【讨论】:

    猜你喜欢
    • 2016-05-13
    • 2018-06-15
    • 2017-08-22
    • 2012-11-07
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多