首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用显示/隐藏

无法使用显示/隐藏
EN

Stack Overflow用户
提问于 2013-02-17 04:41:21
回答 2查看 468关注 0票数 0

我的问题:当我添加另一个文本输入时,我无法显示/隐藏它。

代码语言:javascript
运行
复制
<html>
 <head>

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.1.0.min.js"></script>
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<script>

$(document).ready(function(){

        $(".slidingDiv").hide();
        $(".show_hide").show();

        $('.show_hide').click(function(){
        $(".slidingDiv").slideToggle();
        });

        $(".slidingDiv1").hide();
        $(".show_hide1").show();

        $('.show_hide1').click(function(){
        $(".slidingDiv1").slideToggle();
        });

});

var counter = 1;
var limit = 3;
function addInput(divName){

mainCanvasDiv = document.createElement("div");
mainCanvasDiv.className = "slidingDiv1";
mainCanvasDiv.style.display = "none";

var newdiv = document.createElement('div');
newdiv.id = "dynamicInput" + counter;
          newdiv.innerHTML = "<a href='#' class='show_hide1'>Show/hide</a>";
          mainCanvasDiv.innerHTML = "Entry " + (counter + 1) + " <br><input type='text'  name='dynamicInput" + counter +"1'><br><input type='text' name='dynamicInput" + counter +"2'>";
          document.getElementById(divName).appendChild(newdiv).appendChild(mainCanvasDiv);
          counter++;

}
$(document).ready(function(){
    $('#sortable').sortable({
        update: function(event, ui) {
 var newOrder = $(this).sortable('toArray').toString();
            document.getElementById('sort').value = newOrder;
        }
    });
});


</script>
</head>
<body>

<form action="lost.php" method="POST">
<div id="sortable">
<div id="dynamicInput">
<a href="#" class="show_hide">Show/hide</a>
<div class="slidingDiv">
<input type="text" name="myInputs[]">

</div>
</div>
</div>
<input type="button" value="Add another text input" onClick="addInput('sortable');"><br />
<input type="hidden" name="sort" id="sort" value="">
<input type=submit value="GO!">
</form>
</body>
</html>

有什么建议吗?

更新:

我已将$('.show_hide1').click(function(){更改为$('.show_hide1').on("click","div a.show_hide1",function(){

也许我做错了什么,我的JS不强。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-17 05:00:09

将您的单击事件替换为:

代码语言:javascript
运行
复制
            $("#sortable").on("click","div a.show_hide", function() {
                $(".slidingDiv").slideToggle();
            });

            $("#sortable").on("click","div a.show_hide1", function() {
                $(".slidingDiv1").slideToggle();
            });
票数 0
EN

Stack Overflow用户

发布于 2013-02-17 04:46:29

已修复:http://jsfiddle.net/Yhp3c/

您需要使用live而不是click,因为live也以未来(读取: DOM脚本)元素为目标。

编辑:如注释中所述:使用on而不是live

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

https://stackoverflow.com/questions/14914891

复制
相关文章

相似问题

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