首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在页中,jquery不触发

在页中,jquery不触发
EN

Stack Overflow用户
提问于 2014-07-05 16:40:07
回答 2查看 32关注 0票数 0

我有一个创建行的页面,其中包括具有非顺序ids的复选框。根据数据库中的数据,有时需要检查onLoad。PHP正在遍历数据,创建页面。

问题是:我在循环中拥有的jquery无法工作。它不是检查复选框或触发更改事件。它也没有向我展示我在那里的console.logs。如果我选中内联复选框,这是有效的,但它不会触发更改事件,它必须使页面功能正确。

下面是一些代码:

代码语言:javascript
运行
复制
<? foreach($weekly as $w){ ?>

// create the row

  <input type="checkbox" id="slW_4" name="slW_4" <? if($w['current_sl_id']){echo 'checked';} ?>>

  <? if($w['current_sl_id']){ ?>
    <script language="text/javascript">
      $(document).ready(function(){
        $('#slW_4').prop('checked', true);
        console.log('should have checked the checkbox: '+ $('#slW_4').is(':checked'));
        $('#slW_4').trigger("change");
        console.log('should have triggered change');
      });
    </script>
  <? } ?>

<? } ?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-05 17:07:16

我强烈建议将javascript排除在循环之外。最糟糕的情况是,您必须稍后在代码中重新循环$weekly。

票数 0
EN

Stack Overflow用户

发布于 2014-07-05 16:50:24

您没有任何绑定来侦听更改事件,默认情况下,触发change不会对实际复选框做任何事情。

你需要一个听众,比如:

代码语言:javascript
运行
复制
$('#slW_4').on('change', function (event) {
    // ...do something here
});

// Rest of your code underneath

然后$('#slW_4').trigger("change");将触发该函数。

也不相关,但在顶部,如果您经常调用$('#slW_4'),我会将它存储在像var $sl4 = $('#slW_4')这样的变量中,并使用像$sl4.prop('checked', true)这样的变量

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

https://stackoverflow.com/questions/24588508

复制
相关文章

相似问题

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