0

我有一个动态按钮,当满足 JavaScript 中的条件时加载。当按钮加载时,我需要调用一个函数(ClickMe),只要我单击按钮就可以工作。

现在的问题是我无法将功能与按钮相关联。

在我的代码中

    var showthelocation = "";

    showthelocation += '<li>';

    if (data.location == 'Sydney'){
    showthelocation += "</br><button class=\"" + ClickMe + "\">Show</button>";
    }

    showthelocation += '</li>';


    function ClickMe("Click"){
    //Some Code
    };

    $(".showthelocation").html(showthelocation);

和 HTML

    <ul class="showthelocation"></ul>

我想放置一个 ID 或 Class 以从 ClickMe 功能访问它,但无法做到。有什么帮助吗?

4

2 回答 2

2

为什么不做类似的事情:

var showthelocation = "";
showthelocation += '<li>';

if (data.location == 'Sydney'){
  showthelocation += '<br /><button onclick="ClickMe();">Show</button>';
}

showthelocation += '</li>';

$(".showthelocation").html(showthelocation); 

function ClickMe(){
  console.log("Some Code");
};

或者更多 jQuery'sh

...
showthelocation += '<br /><button id="myButton">Show</button>';
...
$(".showthelocation").html(showthelocation);
$("#myButton").onclick(ClickMe);

这可行,但如果您有更多按钮可以执行相同的功能,您应该选择 aclass而不是 a id,例如:

...
showthelocation += '<br /><button class="myButton">Show</button>';
...
$(".showthelocation").html(showthelocation);
$(".myButton").onclick(ClickMe);

这会将点击处理程序附加到所有具有 class 的按钮myButton

于 2013-07-16T15:25:46.720 回答
0

我猜你的问题是每个按钮上的 ClickMe 功能。现在它只是在 HTML 中写出某种“[对象函数]”的东西,我猜。我认为最好的解决方案是多部分分配。从 HTML 本身中删除 onclick,然后...

$(".showthelocation").html(showthelocation);
$(".showthelocation li button").onclick(ClickMe);

这应该将处理程序添加到以这种方式创建的所有按钮中。

于 2013-07-16T15:11:58.187 回答