【问题标题】:Passing a div value to a jQuery function inside Fancybox 2将 div 值传递给 Fancybox 2 中的 jQuery 函数
【发布时间】:2015-01-08 15:23:13
【问题描述】:

我将此内容从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
                    });
    });

所以当任何人点击 profileimage 时,配置文件会从 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);
    });
});

但它不起作用:/

【问题讨论】:

  • 你的javascript函数在哪里?尝试将其添加到您的 test.php 页面。
  • 它是working fine。您是否尝试过将您的.click 添加到您的.ready 函数中?您应该展示所有内容的结构。
  • 在fancybox @Jonast92
  • @Matt123456 你到底为什么要这么做?请分享完整的代码来展示如何。
  • 在 test.php @remixdesign 中已经就绪

标签: jquery html fancybox-2


【解决方案1】:

它没有提醒,因为 ID #submitmsg 不存在,因为它是异步加载的。

你需要使用事件委托:

$(document).on('click', '#submitmsg', function(e){
  e.preventDefault();
  var clientmsg = $("#usermsg").val();
  alert(clientmsg);
});

document 只是一个工作示例 - 您应该使用父元素来加快速度。

如果它不工作通过将console.logs 放在您的fancybox 之前、您的fancybox 之后和您的点击事件中来调试它。如果它在点击事件中触发,则代码有效,问题出在您的标记上。确保没有双重 ID,因为它们是唯一的。

【讨论】:

  • 这种方式也不会发出任何警报:/ 我也尝试过:$('.msgarea').on('click', '#submitmsg', function(){
  • 截取的代码实际上工作正常。代码结构有问题。
  • 哦,好吧,我以为他的 JS 会在一个 JS 文件中,而不是内联。在外部文件中它不会像这样工作..尝试将我的 JS 代码放在您的文档准备好的 func 中,在您的 fanybox 内容下方..
  • 但是 fancybox 代码在 index.php 中,而不是 test.php 我在 test.php 中尝试了你的新代码,但它也没有工作,我猜是 fancybox 错误
  • 如我所说。把它放在 domready 函数内的 index.php 中。我的代码不必在 test.php 中。
猜你喜欢
  • 1970-01-01
  • 2013-06-25
  • 2015-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-08
  • 2013-11-17
  • 1970-01-01
相关资源
最近更新 更多