嗨,我有一个类似的工作代码
$(document).on ("click", ".submit", function () {
the_id = $(this).attr('data') ;
});
$(document).on ("mouseover", ".edit", function () {
the_id = $(this).attr('data') ;
});
$(document).on ("mouseout", ".avoid", function () {
the_id = $(this).attr('data') ;
});
但它看起来非常响应这个变量the_id
,因为每次我进行一些点击或鼠标悬停时我都必须定义它,我有许多onclick onmouseover具有相同的变量。
问题在于我无法将其作为全局变量,因为它具有$(this)
,它获取所单击元素的ID。
我怎么能这样做:
the_id = $(this).attr('data') ; // how to define it here with $this() <-------
$(document).on ("click", ".submit", function () {
// its defined here the_id ;
});
$(document).on ("mouseover", ".edit", function () {
//its defined here the_id ;
});
$(document).on ("mouseout", ".avoid", function () {
// its defined here the_id ;
});
谢谢!
修改
Ibrahim说我创建了一个函数
但我得到的错误是id不是函数
function id(){
classList = $(this).attr("class").split(/\s+/);
$.each(classList, function(index, item) {
if (item.indexOf("user") > -1) {this_id = item;}
if (item.indexOf("chatid") > -1) {this_chat_id = item;}
});
this_id = this_id.replace('user', '');
this_chat_id = this_chat_id.replace('chatid', '');
return [this_id, this_chat_id];
}
答案 0 :(得分:0)
您可以将这3行合并为一行,方法是指定用逗号分隔的所有元素,如下所示:
add3
或者你可以保留3行,但调用相同的功能:
$(document).on ("click mouseover mouseout", ".submit, .edit, .avoid", function () {
the_id = $(this).attr('data') ;
});
答案 1 :(得分:0)
只需定义脚本标记的变量顶部打开,脚本中的所有函数都可以使用此变量。如下所示
<script>
var the_id = '';
__YOUR CODE__
</script>