function my_fun(){
var data = $(this).data();
// this is undefined
console.log(data.crm);
}
$(document).on('click', '#add_image', (function() {
var data = $(this).data();
// this works
console.log(data.crm);
my_fun();
}));
<a class="add_img" href="#" data-crm="1" id="add_image">Add Image</a>
基本上我想在my_fun()中访问html链接集数据(即数据集crm的值)而不将参数发送到my_fun()。
如何在整个javascript范围内访问点击事件html设置数据。 的JavaScript。
答案 0 :(得分:0)
实现这一目标的方法有限。一种是将参数传递给被调用的函数
另一种方法是仅引用该函数,并保留this
值
function my_fun(){
var data = $(this).data();
// this is undefined
console.log(data.crm);
}
$(document).on('click', '#add_image', my_fun);
最后,有bind
,apply
或call
my_fun.bind(this)();
// or
my_fun.call(this);
// or
my_fun.apply(this, arguments);
答案 1 :(得分:0)
<强> Global variable in javascript 强>
function my_fun() {
console.log(data.crm);
}
$(document).on('click', '#add_image', (function(e) {
e.preventDefault();
data = $(this).data();
console.log(data.crm);
my_fun();
}));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a class="add_img" href="#" data-crm="1" id="add_image">Add Image</a>
&#13;
答案 2 :(得分:0)
答案 3 :(得分:0)
function my_fun(event){
var data = $(event.target).data();
console.log(data.crm);
}
$(document).on('click', '#add_image', my_fun);
或
function my_fun(event){
var data = $(event.target).data();
console.log(data.crm);
}
$(document).on('click', '#add_image', function(e){
my_fun(e);
});