【问题标题】:How to get the click event values outside the function in jQuery如何在jQuery中获取函数外的点击事件值
【发布时间】:2012-01-05 09:14:10
【问题描述】:

如何在jQuery中获取onclick事件(点击div时这个值改变)?

$("ul li").click(function(){
  var v = $(this).val();
});

$(function(){
  alert(v);
});

【问题讨论】:

  • 您需要更好地解释您的问题吗?你想什么时候发生?
  • 也许给出一些不起作用的示例代码,并解释你想要发生的事情?
  • funtion?我相信你的意思是function
  • 你拼错了就是功能
  • 如果你只是想访问事件,你可以这样做:$("ul li").click(function(event){ var clickEvent = event; });

标签: javascript jquery


【解决方案1】:
$(function() {

    var v;

    $('ul li').click(function() {
        v = $(this).val(); // .text() - consider
        testFunction();
    });

    function testFunction() {
        alert(v);
    }

});

您的问题是变量范围,您定义了一个仅可用于 click 函数的变量。如果您在函数之外定义它,它将可用于其他范围内函数。

这是一个演示:

http://jsfiddle.net/vs87B/

您可能需要考虑使用.text() 而不是.val()

【讨论】:

  • 嘿,我想在另一个函数中使用点击值
  • 您可以使用此代码在 $(function() {}); 调用内的任何其他函数中使用 v
【解决方案2】:

如果您的意思是在单击时获取 div 的 innerHTML,这里有一个可以提供帮助的代码

$("div").click(function(){console.log($(this).html())})

【讨论】:

  • 不是我的意思是在点击功能上改变值我必须在该功能之外使用,这是动态的
  • 我仍然不确定你的意思......请尝试改写你的问题;)
【解决方案3】:

据我了解,您想更改 div 的文本

你的 div 如下

 <div>123</div>

你可以这样做

<script>

$("div").click(function () {
 $(this).replaceWith( "new text " );
});
</script>

编辑 您可以使用如下全局变量

 $.mynamespace = {};
$("ul li").click(function(){
       $.mynamespace.myVar  = $(this).val();
});

$(function(){
  alert( $.mynamespace.myVar );
});

参考How to store a global value (not necessarily a global variable) in jQuery?

【讨论】:

  • 我的意思是问我是否将值减为 gobal ,我在使用 onlick 时没有得到更改值
猜你喜欢
  • 1970-01-01
  • 2013-10-17
  • 1970-01-01
  • 2014-10-29
  • 1970-01-01
  • 2015-04-07
  • 2020-05-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多