0

我正在使用 jQuery v1.7.2。

以下代码以 bootstrap (2.2.1) 模态形式生成适用的复选框:

    $sql1="Select $sub_listing_id,$sub_listing_name FROM $sub_listing";
    $results=$wpdb->get_results($sql1,ARRAY_A);

    $html_code= '<form id="multiselect">';
    $num=0;
    foreach($results as $key=>$value)
    {
        foreach($value as $k1=>$v1)
        {        
            if($k1==$sub_listing_id)
            {
                $sub_listing_id_val=$v1;
            }
            if($k1==$sub_listing_name)
            {
                $sub_listing_name_val=$v1;

    $html_code.= '<input type="checkbox" name="list" value="'.$sub_listing_id_val.'">&nbsp;&nbsp;'.$sub_listing_name_val.'&nbsp;&nbsp;&nbsp;&nbsp;';
    $num=$num + 1;
    if($num%5==0)
    $html_code.= '<br/><br/>';
            }
        }
    }
    $html_code.= '</form>';
    echo $html_code;

现在,我选择了一些复选框并通过以下 jQuery 传递选定的值:

$('#btn-add-sub-listing-save').click(function (e){
    e.preventDefault();
    var ajax_url='add_sub-listing.php';
    var dataString=$('#multiselect').serialize();
    showLoader('.modal-body');
    dataString=dataString.replace(/&/g,' AND ');

    $.ajax({
    url: ajax_url + '?' + dataString,
    type: 'GET',
    dataType: 'html',
    success: function(data){
        $('.modal-body').html(data);
    }
});
});

如果我编辑 jQuery:

$('.modal-body').html(dataString);

它工作得很好。这意味着 #multiselect 一直被序列化,但它不会被第二次附加。因此,我无法获取 mu 登录页面上的值,因此无法取得进展。

我使用过缓存:假和异步:假。不过,还是不行!请提出您的建议。

也许引导模式缓存与此有关。我之前通过使用以下 jQuery 克服了这种情况:

$('.btn-add-sub-listing').click(function (e){
    e.preventDefault();
    $('#add-sub-listing-modal').removeData("modal");
    $('#add-sub-listing-modal').modal({remote: $(this).attr("href")})
    $('#add-sub-listing-modal').modal('show');

});

在这里,我使用了“href”。我可以为“href”不适用的按钮做吗?

4

3 回答 3

1

当您替换 HTML 时,您很可能会用一个新按钮替换按钮,这将取消点击事件。

每次替换 HTML 内容时都应该重新连接 click 事件,或者使用jQueryon方法连接事件。这将适用于您body在触发事件时匹配的任何按钮元素。

$('body').on('click', '#btn-add-sub-listing-save', function(e)
{
    // handler as before
});
于 2013-03-12T11:54:00.780 回答
0

添加一个 Temp 变量并在 ajax 之前检查它

于 2013-03-12T12:00:55.520 回答
0

这对我有用

$('body').on('click', '#btn', function(e)
{
    // you code here
});
于 2020-03-31T12:33:59.977 回答