将 div 值传递给 Fancybox 2 中的 jQuery 函数
Passing a div value to a jQuery function inside Fancybox 2
我将此内容从 test.php
加载到 Fancybox:
<form class="msgarea" action="" method="post">
<textarea id="usermsg" cols="35" rows="4"></textarea>
<input type="submit" id="submitmsg" value="Send" />
</form>
$("#submitmsg").click(function(){
var clientmsg = $("#usermsg").val();
alert(clientmsg);
});
clientmsg
val 不会发出任何警报,而任何其他 jQuery 函数都可以正常工作。当我直接调用 test.php
而不是在 fancybox 内部时,它工作正常。可能是什么问题?
如果重要的话,我就是这样称呼 Fancybox 的:
编辑:
我调用 test.php 的 index.php 看起来像这样:
<img src="profileimage.jpg" class="fancybox fancybox.ajax" href="test.php?user=123">
$(document).ready(function() {
$(".fancybox").fancybox({
'type':'ajax',
"autoScale": false
});
});
所以当有人点击个人资料图片时,个人资料会从 test.php 显示到 fancybox 中,我希望用户能够从 msgarea
发送消息
编辑 2:
现在里面index.php我改成:
$(document).ready(function() {
$(".fancybox").fancybox({
'type':'ajax',
"autoScale": false
});
$('.msgarea').on('click', '#submitmsg', function(e){
e.preventDefault();
var clientmsg = $("#usermsg").val();
alert(clientmsg);
});
});
但它不起作用:/
它没有提醒,因为 ID #submitmsg 不存在,因为它是异步加载的。
您需要使用事件委托:
$(document).on('click', '#submitmsg', function(e){
e.preventDefault();
var clientmsg = $("#usermsg").val();
alert(clientmsg);
});
document 只是一个工作示例 - 您应该使用父元素来加快速度。
如果它不工作,通过将 console.logs 放在你的 fancybox 之前、你的 fancybox 之后和你的点击事件中来调试它。如果它在点击事件内部触发,则代码有效,问题出在您的标记上。确保没有双重 ID,因为它们是唯一的。
我将此内容从 test.php
加载到 Fancybox:
<form class="msgarea" action="" method="post">
<textarea id="usermsg" cols="35" rows="4"></textarea>
<input type="submit" id="submitmsg" value="Send" />
</form>
$("#submitmsg").click(function(){
var clientmsg = $("#usermsg").val();
alert(clientmsg);
});
clientmsg
val 不会发出任何警报,而任何其他 jQuery 函数都可以正常工作。当我直接调用 test.php
而不是在 fancybox 内部时,它工作正常。可能是什么问题?
如果重要的话,我就是这样称呼 Fancybox 的:
编辑:
我调用 test.php 的 index.php 看起来像这样:
<img src="profileimage.jpg" class="fancybox fancybox.ajax" href="test.php?user=123">
$(document).ready(function() {
$(".fancybox").fancybox({
'type':'ajax',
"autoScale": false
});
});
所以当有人点击个人资料图片时,个人资料会从 test.php 显示到 fancybox 中,我希望用户能够从 msgarea
发送消息编辑 2:
现在里面index.php我改成:
$(document).ready(function() {
$(".fancybox").fancybox({
'type':'ajax',
"autoScale": false
});
$('.msgarea').on('click', '#submitmsg', function(e){
e.preventDefault();
var clientmsg = $("#usermsg").val();
alert(clientmsg);
});
});
但它不起作用:/
它没有提醒,因为 ID #submitmsg 不存在,因为它是异步加载的。
您需要使用事件委托:
$(document).on('click', '#submitmsg', function(e){
e.preventDefault();
var clientmsg = $("#usermsg").val();
alert(clientmsg);
});
document 只是一个工作示例 - 您应该使用父元素来加快速度。
如果它不工作,通过将 console.logs 放在你的 fancybox 之前、你的 fancybox 之后和你的点击事件中来调试它。如果它在点击事件内部触发,则代码有效,问题出在您的标记上。确保没有双重 ID,因为它们是唯一的。