我正在尝试使用这些代码行向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
我不知道我做错了什么,并希望得到任何有关此事的帮助。
答案 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);
}
<强>拨弄强>