1

JQueryはまだ私を怒らせています...ここに問題があります:訪問者がdiv(id = "contact")内のリンクをクリックすることで自分の電子メールアドレスを残すことができるページがあります。

<div id="contact"><a href="">vuoi lasciare un recapito?</a></div>

クリックすると、「連絡先」divがphpフォームをロードします。ユーザーが自分のメールアドレスを入力すると、アドレスがチェックされ、データベースに挿入されます。

$(document).ready(function() {
$('#contact a').click(function()
    {
    $('#contact').load('mailform.php');
    return false;
    });
$('#contact').submit(function(){
    var email = $('input[name=email]', '#submitmail').val();
    var submit = $('input[name=submit]', '#submitmail').val();
    $('#contact').load('mailform.php',{'email': email,'submit': submit});
    return false;
    });
//the close button - start
$(".cls").click(function(){
    alert($(this).parent().html());
    $(this).parent().hide();
    });
//the close button - end
});

「閉じる」ボタンまたはリンクを追加したいときに苦痛が生じるので、ユーザーはフォームに入力した後、または入力する前でもフォームを非表示にできます。

<div id="submitmail">
    <form action="#" method="post">
        <fieldset>
        <p><label for="email"><?php echo $_SESSION['nome']; ?></label><input type="text" name="email" /></p>
        <p class="submit"><input type="submit" name="submit" value="inserisci" /></p>
        </fieldset>
        </form>
</div>
<span class="cls">Chiudi</span>

リンク(および「閉じるボタン」スクリプト)は単に機能しません。アラート、スイッチ、divの消失はありません...何もありません。すでに試行$('span.cls').click(function()されており、$('#cls').click(function()(「スパン」を「div」に、クラスをIDに切り替えた後)手がかりはありません。クリックするだけのリンクで、何もしません。FirebugとIEの開発ツールバーはこの機能にさえ入りません。代替ソリューションは大歓迎です...

ありがとうございました!

4

3 に答える 3

4

これを試して:

$("#contact").on("click", ".cls", function(){
    alert($(this).parent().html());
    $(this).parent().hide();
});

バインド時に.cls要素が存在しないため、ハンドラーを適切な親要素に委任する必要があります。これの「直接および委任されたイベント」セクションを読んでください。

http://api.jquery.com/on/

上記のリンクからの抜粋:

新しい HTML がページに挿入されている場合は、要素を選択し、新しい HTML がページに配置された後にイベント ハンドラーを添付します。または、委任されたイベントを使用してイベント ハンドラーをアタッチします...

于 2012-08-21T11:35:19.083 に答える
0

You did not copied here the parent of the following html:

<span class="cls">Chiudi</span>

Try this:

$(".cls").click(function(){
    // alert($(this).parent().html());
    $('#submitmail').hide();
});
于 2012-08-21T11:39:30.010 に答える
0

私の推測では、閉じるボタンは documentReady の DOM の一部ではありません。

于 2012-08-21T11:38:58.350 に答える