0

タイトルはあまり適応していないと思いますが、それ以外に何を付ければよいかわかりません。必要に応じて編集します。

私が欲しいのは非常に奇妙ですが、反対票を投じないでください。そのように呼び出される独自の関数を作成したい:<input type="text" onMyFunction="alert('hi');" />

無理なら言っていただければベストアンサーにさせていただきます。

PS: 機能する場合、関数は永続的に呼び出され、この関数内ifで先頭に a を配置します。

4

3 に答える 3

2

純粋な JavaScript を使用してこれを行うことができますが、jQuery の方が簡単です。

<input id="someId" type="text" />

$('#someId').bind('myCustomEvent', function(event) {
  alert('hi');
});

そして、コードの他の場所でそれをトリガーするには:

$("#someId").trigger('myCustomEvent');

詳細はこちら: http://dailyjs.com/2009/11/14/jquery-custom-events/

于 2012-05-15T14:31:42.577 に答える
1

私がこれを正しく理解していれば、JavaScript関数が呼び出されたときに何かを起こさせたいと思っています。実際の機能で起こりたいことを入れてみませんか?

<script type="javascript/text">
function MyFunction(){
// some code
alert('hi');
</script>

永久に呼び出されるとはどういう意味かわかりませんが、上記のコードでは、質問で説明したのと同様に、関数が呼び出されるたびに hi を表示するアラートが発生しますが、別の実装を使用しています。

onMyFunction="alert('hi')" を実際に使用する限り、onClick、onload、および onmouseover イベントが組み込まれているため、これが可能であるとは思えません。したがって、onMyFunction を正しく実装する追加のコードを記述しない限り、私はそれを行う方法が表示されません。

于 2012-05-15T14:31:29.380 に答える
1

あなたが抱えている問題は、ブラウザがそこにある機能であることを認識していないことです. これは文字列です。これを関数にする唯一の方法は、関数として割り当てることです。

1 つの方法は、ドキュメントの準備ができているかオンロードのいずれかです。属性を持つ要素についてドキュメントをクエリし、それを再割り当てします。

HTML

<input id="foo1" type="text" onMyFunction="alert(this.value);" value="1"/>
<input id="foo2" type="text" onMyFunction="alert(this.value);" value="2"/>​

JavaScript

var winLoad = window.onload;
window.onload = function(){
    var i, 
        elem,
        fncStr,    
        elems = document.querySelectorAll("[onMyFunction]");

    if (winLoad) {
        winLoad();
    }

    for (i=0;i<elems.length;i++) {
        elem = elems[i];
        fncStr = elem.getAttribute("onMyFunction");
        elem.onMyFunction = new Function(fncStr);        
    }

    var tb1 = document.getElementById("foo1");
    tb1.onMyFunction();​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
}

ここで実行中の例

このコードは、すべてのブラウザでサポートされていないquerySelectorAllを使用しています。

于 2012-05-15T14:37:46.150 に答える