将onclick函数附加到div jquery

时间:2015-11-06 11:45:39

标签: javascript jquery

我正在尝试使用这些代码行向click添加一个on click函数,但click事件不会触发警报。

var str="<script>$(this).on(\"click\",function(){alert('hello');})";
str+="<";
str+="/script>";
$("div:contains('Send')").last().append(str);

我也尝试了this$(this)[0],但这些错误this.on/ $(this)[0].on is not a function 我不知道我做错了什么,并希望得到任何有关此事的帮助。

3 个答案:

答案 0 :(得分:1)

不应该经历为脚本创建字符串的麻烦。您可以使用jquerys .on并通过点击事件进行注册。

$("div:contains('Send')").last().on("click", function () {
    alert('hello');
})

答案 1 :(得分:0)

如果您使用的是jQuery,可以使用$(“div”)为选择器添加click事件到所有div(只需记住在加载div后调用该函数)

我创建了一个简单点击功能的例子

$(".start").click(function() {
    $(this).toggleClass("onClick");
})

http://jsfiddle.net/7j6s2Lws/2/

$(this)将识别哪个对象实际触发事件,并仅选择它。在我的情况下,如果你点击一个div,它将改变颜色(只有它)

答案 2 :(得分:0)

我会选择稍微不同的方法。我希望我理解你的问题是正确的,即使我在这里把<script>放到你的字符串中也没有真正得到你想要的东西......也许这会有所帮助:

<强> HTML

<div id='container'>
    <button>Send</button>
</div>

<强> JS

var $container = $("div:contains('Send')");
var elementToAppend = "<div class='myClass' style='width:100px; height:100px; border: 1px solid red'>added dynamically ... click me</div>";

appendToContainer($container, elementToAppend);
$('.myClass').click(function($element) {
    alert(123);
});

function appendToContainer($container, element) {
    $container.append(element);
}

<强>拨弄

http://jsfiddle.net/2pofLnb7/2/