【问题标题】:jQuery Dialog showing only oncejQuery 对话框只显示一次
【发布时间】:2012-09-20 09:34:43
【问题描述】:

我的 jQuery 有一个泡菜。情况如下: 我正在加载一个页面(主页)。当单击某个元素时,会打开一个加载了另一个页面(page1)的 div。在这个加载的页面中,我有一个按钮,它打开一个对话框,其中包含另一个加载的页面(page2)。

这一切都很好,一次。当我关闭对话框时,单击 page1 上的按钮时它不会再次出现。

我搜索了互联网,但解决方案对我没有帮助。我无法弄清楚我在这里做错了什么。这是一个很常见的问题,但我的代码似乎是对的,对吧?

这是我的代码(无论如何是有用的部分):

<script>
$(document).ready(function(e) {
    $("#editdialog").dialog({
                autoOpen: false,
                width: 400,
                height: 600,

    });

    $(".editfreight").one("click", function(){
        $("#editdialog").load("inc/ajax/editfreight_ajax.php?id=" + $(this).data("freight"));
        $("#editdialog").dialog("open");

    });


});

</script>

<div id="editdialog" style="display: hidden"></div>

好吧,我希望有人可以在这里帮助我!我也试过这个:

$(".editfreight").one("click", function(){
$("#editdialog").dialog({
                    autoOpen: false,
                    width: 400,
                    height: 600,
                    close: function() {
                          $("#editdialog").dialog("destroy")

        });
        $("#editdialog").load("inc/ajax/editfreight_ajax.php?id=" + $(this).data("freight"));
    $("#editdialog").dialog("open");
)};

这样,我想我会在单击按钮时启动对话框(而不是在页面加载时),并在关闭对话框时销毁实例。显然这也不起作用。

【问题讨论】:

    标签: jquery jquery-ui jquery-ui-dialog


    【解决方案1】:

    事件处理程序附件应该是on("click"),而不是one("click")one只会触发一次

    $(".editfreight").on("click", function(){
    });
    

    one 文档:http://api.jquery.com/one/

    one():将处理程序附加到元素的事件。每个元素最多执行一次处理程序。

    【讨论】:

    • 这成功了。我使用 one() 是因为 Dreamweaver 无法识别 on()。愚蠢的错误。感谢您的关注!
    【解决方案2】:

    改一下试试

    $(".editfreight").one("click",function(){
    

    改成

    $(".editfreight").click(function(){
    

    也改变这一行

    close: function() {
         $("#editdialog").dialog("close")
    

    【讨论】:

      【解决方案3】:

      替换

      $(".editfreight").one("click", function(){
      

      通过

      $(".editfreight").click(function(){
      

      one 设计为只能工作一次。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-05
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多