0

onclick要素をdivに(そしてそれだけに!)アタッチしている問題を修正したい

次のコードを見てください:

<script>
function  goToo(url,idd){
alert(idd);
if (idd=="onlyMe")
window.location=url;
}
</script>
<div id="onlyMe" onclick="javascript:goToo('http://www.google.com', this.id)" style="<-index:-150">
<form><input type="text" name="coap"></form>

<h3>This is an element where click should work!</h3>

<div id="notME">
<h3>In this point it should not work!</h3>
</div>

</div>

divのクリックでのみonlickがトリガーされるようにしたい。

ライブの例を確認してください@http://modacalcio.com/HtmlProblemForm.html

クリックはどこでも、特にフォーム入力でトリガーされます。

Obiovusly子ノードのonclickを削除せずにこれを使用したいのは、子ノードにはまだ機能する必要がある独自のonclickがあるためです。

また、jqueryでも同じ問題がありますか?

4

2 に答える 2

2
$('#onlyMe').on('click', function(evt) {
    if ($(evt.target).parents('#notME').length === 0 && evt.target.id !== 'notME') {
        location.href = "http://...";
    }       
});

フィドルの例: http://jsfiddle.net/zhkr2/2/

アイデアは、イベントが要素でトリガーされた#notMEか、または に含まれる要素内でトリガーされたか#notMEを確認することです。そのため、先祖がその要素であるかどうかを確認します

于 2012-06-06T10:11:08.977 に答える
0

「div」に幅を与えるだけです

#onlyMe
{
width:
height:

}

divを適切に閉じます。

于 2012-06-06T10:15:11.103 に答える