gpt4 book ai didi

javascript - 按钮、jquery 和模式

转载 作者:行者123 更新时间:2023-11-28 04:14:12 24 4
gpt4 key购买 nike

我正在尝试更好地理解模态和 js。我尝试使用与 php 文件相关的按钮,以便在单击按钮后使 php 文件的内容显示在模式窗口中。

所以...

button_1 获取 file_1 并在单击后将其置于模式中。
Button_2 获取 file_2 并在单击后将其置于模式中。等等

我已经实现了大部分目标,但由于某种原因,每个按钮都需要单击两次(第一次出现模式窗口)才能使模式正常工作。之后,只需单击一下即可正常工作,直到刷新页面。此时,再次需要单击两次。

如果我不尝试将 php 文件中的信息插入模式窗口,我的代码可以正常工作。所以...我猜这与按钮必须做两件事有关。 1. 获取信息并 2. 打开模式窗口。

如何一键将两者结合起来?

我尝试过预取文件。

<link rel="prefetch" href="/folders/to/php/files/1.php">

我还尝试在 html 中预先插入模式。

我尝试使用加载而不是单击函数。

我的尝试并没有改变我首先需要双击按钮的事实。

感谢任何帮助!!

奖金:如果我能让按钮动态查找相关文件,那就太好了。这意味着我可以简单地添加或删除按钮,他们就会找到正确的文件。我需要做的就是添加与按钮一样多的文件。感谢您的时间和帮助!

代码如下:

$("#liste > button").on('click', apar);

function apar() {
$(this).addClass("active").siblings().removeClass("active");
$('#main_p').load("/folders/to/php/files/" + (1 + $(this).index()) + ".php");

$(document).ready(function() {
// Do something with the DOM
$('.active').click(function() {

});
});

}

function renderHTML(data) {


var htmlP = data.url;

$('#main_p').html(htmlP);

}

// On page load, click on the first `btn` to automatically load the data for it
$('#liste > button:first').click(renderHTML);
.btn {
margin: 5px;
padding 0px 5px;
text-align: center;
background-color: #0095ff;
color: #FFF;
border: none;
}

.btn:hover,
.btn:focus {
outline: none !important;
color: #FFF;
}

.active {
background-color: #891;
}
<!doctype html>
<html>

<head>
<title> Modals </title>



<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>





</head>

<body>

<div id="liste">
<button class="btn" data-toggle="modal" data-target="#myModal_1">
<div class="tree">to file 1</div>
</button>
<button class="btn" data-toggle="modal" data-target="#myModal_2">
<div class="tree">to file 2</div>
</button>
<button class="btn" data-toggle="modal" data-target="#myModal_3">
<div class="tree">to file 3</div>
</button>

<h4 id="main_tit"></h4>
<div class="main_p" id="main_p"></div>
<div id="main_ima"></div>

<script src="js/main.js" async></script>
</body>

</html>

这是 1.php 文件的示例:

<div id="myModal_1" class="modal fade" role="dialog">
<div class="modal-dialog">

<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Look 1</h4>
</div>
<div class="modal-body">
<?php

echo "I have the 1.php <br>";
echo "its a go!";

?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>

更新:我添加了自动选择按钮。所以我删除了 html 中的按钮属性,并将其添加到 JS 的顶部:

var idVar = $("#liste").find("button").each(function(index){
$(this).attr("data-target","#myModal_" + (1+$(this).index()));
$(this).attr("data-toggle","modal");
$(this).attr("class","btn");
});

最佳答案

在 js 文件的顶部有 $("#liste > button").on('click', apar);

尝试将其更改为:

$('body').on('click', '#liste > button', apar);

并将其放在代码末尾的 $('#liste > button:first').click(renderHTML);

之后

如果这不能解决问题,请告诉我。

编辑:尝试为 HTML 中的这些按钮创建新的自定义类。最好为您的自定义类设置一个标记,例如 l-custom-class 或 customClass,请尝试遵循以下示例:

HTML:

<div id="#liste">
<button type="button" class="l-liste-button">btn1</button>
<button type="button" class="l-liste-button">btn2</button>
<button type="button" class="l-liste-button">btn3</button>
</div>

JS:

function apar(){
//some code for apar function..
}
function renderHTML(){
//some code for renderHTML function
}

$('body').on('click', '.l-liste-button', apar);
$('body').on('click', '.l-liste-button:first', renderHTML);

这里是JSFiddle

关于javascript - 按钮、jquery 和模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46015324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com