2017-01-18 60 views
3

我有一个按钮来生成演示文稿。我只需点击一次即可生成8个演示文稿,然后点击其名称即可编辑每个演示文稿。我还有另一个更小的表格。我想也有一些按钮,这将让我选择我想要编辑的字段。这适用于“放置”部分 - 如果您想要,您可以指定地点。我有一个按钮来显示/隐藏连接到版本的字段。jQuery弹出按钮(php)

<div> 
    <?= 
Html::button(Yii::t('app', 'Add new place'), [ 
'id' => "add-different-place-btn", 
'class' => 'btn btn-success', 
]) 
?> 
    <?= 
Html::button(Yii::t('app', 'Delete new place'), [ 
'id' => "delete-different-place-btn", 
'class' => 'btn btn-success', 
]) 
?> 
</div> 
<br /> 
<div id="place-hidden-different"> 
    <div id="place-name-hidden"> 
    <?= $form->field($place, "[{$index}]name")->textInput()->label(Yii::t('app', 'New place')) ?> 
    </div> 
    <div id="place-city-hidden"> 
    <?= $form->field($place, "[{$index}]city")->textInput() ?> 
    </div> 
    <div id="place-street-hidden"> 
    <?= $form->field($place, "[{$index}]street")->textInput() ?> 
    </div> 
    <div id="place-postcode-hidden"> 
    <?= $form->field($place, "[{$index}]post_code")->textInput() ?> 
    </div> 
</div> 

然后,在我的jQuery部分,我想出了这样的事情。请注意,我真的很新的jQuery的,因此它可以是东西真的很明显:)

$('.btn-popover-link').on('click', function() { 
    $(document).ready(function() { 
    $('#place-hidden-different').hide(); 
    $('#delete-different-place-btn').hide(); 

    $('#add-different-place-btn').on('click', function() { 
     $('#place-hidden-different').show(); 
     $('#add-different-place-btn').hide(); 
     $('#delete-different-place-btn').show(); 
    }); 

    $('#delete-different-place-btn').on('click', function() { 
     $('#place-hidden-different').hide(); 
     $('#add-different-place-btn').show(); 
     $('#delete-different-place-btn').hide(); 
    }); 
    }); 
}); 

但是,而不是让我想要什么,我得到这样的事情:

First

它看起来没问题。但它不起作用。点击“Dodaj nowe miejsce”(添加新地点)没有任何反应。 Morover,在其他演讲中我得到了各种各样的形式 - 下面的例子。没有一个按钮可以工作,在某些弹出窗口中根本没有按钮,有的只是不工作。

Second

什么会导致这种情况呢?

+1

如果我把它弄好,你为每个8个演示按钮使用相同的ID“add-different-place-btn”。 如果这是正确的,代码正常工作:ID *必须*是唯一的! 您应该像使用'.btn-popover-link'一样移动到类选择器上。('click',function(){} 'document.ready'中;) –

+1

@GrégoireFruleux哇。很简单。谢谢!添加此评论作为答案,所以我可以接受它是正确的。 – Olga

回答

1

如果我把它弄好了,对于8个演示文稿按钮中的每一个,您都使用相同的ID #add-different-place-btn。 如果这是正确的,代码是按预期工作:ID必须是唯一的! 您应该像使用.btn-popover-link一样转到类选择器。

此外,您应该将$('.btn-popover-link').on('click', function() {});移动到$(document).on("ready", function() { ... here ... });之内。 与$(window).on("load", function() {});更好,但它取决于您正在运行的代码的种类。