我现在正在使用JQuery Tagit插件编写新闻列表。(http://jquery.webspirited.com/2011/02/jquery-tagit-a-jquery-tagging-plugin/)
我的网页上有一个新闻列表,每个都有自己的标签。我必须跟踪哪个标签被添加到新闻中或从新闻中弹出。
因此,我有以下代码:
<script>
$('.tagBox').tagit({
tagsChanged:function(value,action,element){
alert(value + " is " + action +
" to/from " + element.closest("ul").attr("id"));
}
});
</script>
我有以下html:
<ul class="tagBox" id="news1">
</ul>
<ul class="tagBox" id="news2">
</ul>
当我向新闻添加标签时,这些代码很有效。但是,当我尝试删除标记时,该元素为空。
那么,当从标签中弹出标签时,如何获得ul的相应id?
答案 0 :(得分:0)
将onmousedown
函数绑定到tagit-close
类,该类在删除标记之前将有问题的tagBox的ID存储到变量中。
tagsChanged-event
使用onclick/onmouseup
,这意味着只有在您释放鼠标按钮后才会调用它。
因此,如果您将onmousedown
函数附加到代码上的“x”(<a class="tagit-close">x</a>
),则可以确保在删除代码之前捕获该事件。
脚本(样机)
var deletedTagsBox = ""; //global variable
$(".tagit-close").mousedown(function(){
deletedTagsBox = $(this).closest("ul").attr("id"));
});
然后在你原来的功能中:
$('.tagBox').tagit({
tagsChanged:function(value,action,element){
var tagBoxID = "";
if (element == null) {
tagBoxID = deletedTagsBox;
} else {
tagBoxID = element.closest("ul").attr("id");
}
alert(value+" is "+action+" to/from "+tagBoxID);
}
});