ボタンをクリックすると、クリックイベントのバインドを解除して別のクリックイベントをアタッチしようとしています。クリックイベントのバインドを解除して新しいイベントを添付しようとしました
<small id="selectall_agriculture" onclick="refineSearch.testing('agriculture')">(select all)</small>
テスト機能が実行された後、私は実行するためにselectAllPropertyTypesInGroup()関数をしたいが、その代わりに、テスト関数が毎回呼ばれます。小さなタグからonclickイベントを取り出し、別のフロントエンドコントロールからsetGroupHeaderNotAllSelected()をトリガーすると、setGroupHeaderNotAllSelected()関数の$( '#selectall_' + groupName).click()で作成されたクリックイベントが機能します。クリックイベントが小さなタグにハードコードされているため、アンバインドが機能していないようです。助言がありますか? unbind
方法が推奨されませんjQuery docパー
refineSearch.testing = function (groupName) {
console.log("Click event from front end running instead of the one binded");
setGroupHeaderNotAllSelected (groupName);
};
var setGroupHeaderNotAllSelected = function (groupName) {
$('#selectall_' + groupName).unbind('click');
$('#selectall_' + groupName).click(function() {
selectAllPropertyTypesInGroup(groupName);
return false;
});
};
変更.click、バインドのために( 'onclick'属性を削除し –
?「クリック」し、代わりに控えめなJSを使用してイベントをアタッチ –
@RoryMcCrossan私は、 'off()'がインラインイベントハンドラをアンバインドできるとは思っていません(例えば、jQueryの 'on()')、 'off()'を使用して新しいイベントを削除してください。しかし、あなたは 'onclick'属性をヌルに設定することで効果的にバインドを解除することができます。 – gforce301