首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >方法问题上的jQuery

方法问题上的jQuery
EN

Stack Overflow用户
提问于 2015-07-08 01:15:16
回答 1查看 55关注 0票数 1

Hi 2 all我正在使用jQuery .On方法来追加行,当我第一次单击add row按钮时,它会追加行,但当第二次和下一次单击时,它将不会做任何事情。我需要知道为什么我的.on方法不起作用,这里是我的代码

代码语言:javascript
复制
<div class="form">
<?php
$form = $this->beginWidget('CActiveForm', array(
    'id' => 'productoption-form',
    'enableAjaxValidation' => false,
));
?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model); ?>

<div class="row">
    <?php echo $form->labelEx($model, 'title'); ?>
    <?php echo $form->textField($model, 'title', array('size' => 60, 'maxlength' => 255)); ?>
    <?php echo $form->error($model, 'title'); ?>
</div>
<div class="row">
    <strong><h3>Add Product Options</h3></strong>
</div>
<div class="row">
    <div class="span-6 headrowname"><strong>Name</strong></div>
    <div class="span-4 headrowprice"><strong>Price</strong></div>
    <div class="span-2"></div>
</div>
<div class="appendrow">
    <div class="row ">
        <div class="span-6">
            <input style="width:100%!important;" type="text" name="option_name" placeholder="Name" required />
        </div>
        <div class="span-4 ">
            <input id="pricetext" type="text" name="option_price" placeholder="Price" required />
        </div>
        <div class="span-2"><input type="button" class="btn btn-primary addrowbtn" value="Add Row" name="addrow" /> </div>
    </div>
</div>
<div class="row buttons">
    <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>

代码语言:javascript
复制
<script>

        $('.addrowbtn').on('click','', function() {
            $('.appendrow').append('<div class="row">\n\
            <div class="span-6">\n\
            <input style="width:100%!important;" type="text" name="option_name" placeholder="Name" required />\n\
            </div><div class="span-4 ">\n\
            <input id="pricetext" type="text" name="option_price" placeholder="Price" required />\n\
            </div><div class="span-2">\n\
            <input type="button" class="btn btn-primary addrowbtn" value="Add Row" name="addrow" />\n\
            </div>\n\
            </div>');
        });

</script>
EN

回答 1

Stack Overflow用户

发布于 2015-07-08 01:26:28

Jquery只将onclick事件附加到.addrowbtn的第一个实例,而不是新添加的实例,因为它们是动态生成的,所以它最终会生成多个不起作用的“添加行”按钮。

虽然你可以动态地将onclick事件重新附加到这些新按钮上,但我认为处理这一问题的更好方法是在.appendrow div之外使用单个“Add Row”按钮,以下是使用您的代码的小提琴:

http://jsfiddle.net/unez9Lrf/

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

https://stackoverflow.com/questions/31275226

复制
相关文章

相似问题

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