首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态更改.click值Jquery问题

动态更改.click值Jquery问题
EN

Stack Overflow用户
提问于 2010-04-26 23:02:17
回答 1查看 1K关注 0票数 0

这是我第一次在这里问。如果答案已经可用,很抱歉。

我有一个非常小的jQuery脚本,它可以在DIV上修改onclick attr的参数。

对于中间的一些内容,它的工作方式类似于向右和向左箭头。

基本上,我设置了onclick="foo(1)",然后当点击sld时,将值1改为2,并且每次点击时都保持不变。

在我使用的jQuery函数上:

代码语言:javascript
复制
$("#v_arrow_r").attr('onclick','').unbind().click(newclick_next);

它在FF和Chrome上就像一个护身符,但在IE上不起作用!啊..。

下面是代码:

代码语言:javascript
复制
if (start == 24) {
 var a = 0;
 var b = 0;
} else {
 var a = start-6;
 var b = start+6;
}

next = "home_featured_videos(" + b + ");"; 
newclick_next = eval("(function(){"+next+"});");

prev = "home_featured_videos(" + a + ");";
newclick_prev = eval("(function(){"+prev+"});");

$('#video-module').css('background','');
$('#video-module').html(response);

$("#v_arrow_l").attr('onclick','').unbind().click(newclick_prev);
$("#v_arrow_r").attr('onclick','').unbind().click(newclick_next);

html:

代码语言:javascript
复制
<div id="videos-home">
  <div class="arrow-l" id="v_arrow_l" onclick="home_featured_videos(0);"></div>
  <div class="content" id="video-module">
   //CONTENT
  </div>
  <div class="arrow-r" id="v_arrow_r" onclick="home_featured_videos(6);"></div>
  <div class="clear_b"></div>
</div>

所以就像我说的..。当页面打开时,我定义了attr onclick。它在IE上运行良好。但是当我单击箭头并调用该函数时,oncli被设置为null,并且我将该函数添加到.click。停止工作。点击是死的。

如果有人知道为什么会这样。

提前谢谢。亲切的问候

瓦罗瓦

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-26 23:35:04

代码语言:javascript
复制
$("#v_arrow_r").attr('onclick','').

不要使用attr来设置事件处理程序属性。它在IE中不起作用,而且到处都是丑陋和低效的。如果您正在使用jQuery,请使用jQuery为您提供的事件绑定方法,例如click()

内联事件处理程序属性是一个老生常谈的东西,无论如何你都应该避免。

代码语言:javascript
复制
next = "home_featured_videos(" + b + ");"; 
newclick_next = eval("(function(){"+next+"});");

您几乎不应该使用eval,而且您肯定不想在每次单击时都分配一个新的处理函数。将当前状态存储在变量中,并从处理程序中读取它。例如:

代码语言:javascript
复制
<div id="videos-home">
    <div class="arrow-l" id="v_arrow_l""></div>
    <div class="content" id="video-module">
        //CONTENT
    </div>
    <div class="arrow-r" id="v_arrow_r"></div>
    <div class="clear_b"></div>
</div>
<script type="text/javascript">

    var pagei= 0; // initial page number
    var pagen= 4; // 4 pages (of 6 items each)

    $('#v_arrow_l').click(function() {
        turnpage(-1);
    });
    $('#v_arrow_r').click(function() {
        turnpage(1);
    });

    function turnpage(d) {
        pagei= (pagei+pagen+d)%pagen;
        $('#video-module').css('background','');
        $('#video-module').html('Page '+pagei); // or load() some AJAX or whatever
    }

</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2714487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档