【问题标题】:Jquery onclick var updateJquery onclick var更新
【发布时间】:2012-01-13 16:10:01
【问题描述】:

这是一个非常简单,可能太简单的问题,但恐怕我在 jQuery 方面的有限技能需要别人的帮助! 看看可耻的代码行:

onclick="javascript:  $j('#'+openc).fadeOut('normal', function({
$j('#'+openc).fadeIn('slow')});
openc=+1;
alert('The city of ' + openc + ' is located in ' + openc + '.');"

默认情况下,openc 设置为 0。

单击时,id 为 0 的 div 淡出,我希望打开 div id 1,然后将 openc 到 b 更新为 1。我为自己添加了警报。当我按一次时,它似乎起作用了。当我再次按下它时,它仍然会提示 1,因此我的 div id 1 会淡出并重新出现。 我想我只需要使用 onclick 将 +1 添加到 fadeIn 函数,这样它就会始终打开 openc+1 但是..似乎无法正确使用语法。

谢谢!

编辑:也许我的问题不够清楚,我想我会添加一些信息。我求你不要建议诸如添加事件处理程序之类的事情,我什至不知道这意味着什么,我是 javascript/jQuery 的菜鸟。我需要做的就是:

onclick,淡出 div openc(是的,是一个数字),淡入 openc +1,并将 openc 更新为自己的值 +1。

这是为了在 div 之间进行分页。 所以说你登陆 div id=0, openc=0。你点击下一步,它应该淡出 div0,淡出 div1,openc 现在应该等于 1。这样下次点击next时,div1淡出,div2出现,以此类推。

希望澄清,再次感谢!

【问题讨论】:

  • 我认为完整的代码示例会有所帮助,也许使用jsfiddle.net ?
  • 如果您使用的是 jQuery,为什么要使用元素的 onclick 属性来分配点击事件处理程序?此外,W3C standards 声明 ID 必须以字母 ([a-zA-Z]) 开头。
  • 不要在 onclick 中使用“javascript:”。这是多余的。
  • 除此之外,使用单个运算符执行加法和赋值是+= 而不是=+。该代码在当前状态下很难阅读,但我确实发现了这一点。
  • Anthony,谢谢你,你是唯一一个真正回答我的问题而不是告诉我我的代码有什么问题的人。我知道阅读起来很糟糕,不推荐使用,你有什么,我很讨厌 javascript/jQuery,而且我什至不能做一个简单的添加的事实应该说明我没有线索什么是好的做法或不是大声笑!我会再试试这个 Anthony,谢谢。

标签: javascript jquery onclick


【解决方案1】:

您应该将此代码放入事件处理程序中,而不是使用过时的onclick HTML 属性。尝试将其放入页面的<head>

<script type="text/javascript">
    $(function() {
        $j("#myElement").click(function() {
            $j('#' + openc).fadeOut('normal', function() {
                $j('#' + openc).fadeIn('slow')
            });

            openc += 1;

            alert('The city of ' + openc + ' is located in ' + openc + '.');
        });
    });
</script>

另外,如 cmets 中所述,ID 不能以数字开头,因此最好也更改这些。

【讨论】:

  • +1 - 如果你用(function($){ ... })($j); 包装它以使用$ insisde,你的回答会更好。 ;)
  • @ThiefMaster 哦,伙计,我最近总是忘记在我的答案中添加一些东西!谢谢。
  • 我很想尝试一下,但老实说,我不知道我必须改变什么才能使这项工作。此外,我宁愿不用在网站的头部放置任何东西,这段代码只需要在一个页面上工作,我担心它可能会导致与网站其余部分的其他脚本发生冲突。能否请您简单地告诉我如何使用我的 onclick 功能做到这一点,不胜感激!
  • 我不确定是否有可能包含onclick 属性中涉及的代码。通常用于指定要执行的函数名。
【解决方案2】:

openc=+1 使它看起来“openc”行是一个数字。 ID 不能是数字。

【讨论】:

  • openc 确实是一个数字,div 也是。为什么不能是数字?
  • 因为 w3c 规范是这样说的。
  • 您如何建议我根据预加载的 div 制作 Prev/Next 导航,完全隐藏,不知道我会提前多少?感谢您的回答,但我的问题不是“我怎样才能使我的页面符合 w3c”,这只是我如何在点击时将我的 openc var 的值更新为自己的值 +1 ;)
  • 您使用 $('#myDIV').length 计算它们并使用 .next() 等相对选择器导航它们
  • 这听起来像是一个完美的解决方案,但正如我在帖子中提到的那样,我不知道我在这里做什么......我意识到我要求一个便宜的解决方案,但 javascript 不是我的领域,根本,我不能为这么小的任务投资学习它,除了 w3c 合规性之外,它工作得很好!如果您能简单地让我知道如何更新 openc var、onclick,我将不胜感激,我将不胜感激!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多