动态元素的jquery.Event
我的代码和我的问题是:
<script type="text/javascript">
$(document).ready(function() {
// this variable is used to set the dynamic elements
tagFlag = '';
$("#a1").click(function(event) {
event.preventDefault();
tagFlag = 'me'; // setting the element which I want to trigger later
});
$('#'+tagFlag).click(function(e) {
// do sthing here
});
});
</script>
</head>
<body>
<a href="">make the element</a>
<p id="me">some words here</p>
</body>
</html>
但是,当我设置 tagFlag 并单击“p”时,什么也没有发生。顺便说一句,当 tagFlag 没有设置任何内容时,出现错误。那么,我怎样才能得到我想要的东西呢?
非常感谢!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
也许您应该查看 jQuery
live()
方法,该方法会将事件分配给所有现有和未来的元素。http://api.jquery.com/live/
Maybe you should look at the jQuery
live()
method that will assign event to all existing and future elements.http://api.jquery.com/live/
没有
ID
为“a1”的元素。如果您想要使用第一个锚元素。
如果不是这样,请报告回来。
There is no element wit the
ID
"a1". If you want the first anchor element useinstead.
If that's not it, report back please.
使用 jquery 对象并将单击的元素添加到其中:
use a jquery object and add the clicked elements to it:
您可以将
.click()
处理程序附加到document
并检查点击的目标是否是您关心的元素,类似于.live()
内部的行为方式,如下所示:您可以在这里尝试一下,对标记的唯一更改是添加一个子元素(以显示点击冒泡/处理工作)并给出我认为您打算在问题中使用的
a1
ID 锚点。或者,如果您知道可以单击的元素集,请给它们一个类并将处理程序绑定到它们,像我上面那样检查 ID...或者取消绑定类并每次重新绑定到特定 ID,有一些解决这个问题的方法:)
You can attach a
.click()
handler todocument
and check if the target of the click was the element you cared about, similar to how.live()
behaves internally, like this:You can give it a try here, the only change to your markup is the addition of a child element (to show click bubbling/handling working) and giving the anchor that
a1
ID I think you intended for it to have in the question.Alternatively if you know the set of elements that may be clicked, give them a class and bind a handler to them, checking the ID like I have above...or unbind the class and rebind to the specific ID each time, there's a few ways to go about this :)