Javascript JQuery在窗口上触发点击后事件
我正在做一个非常简单的Jquery支持的事件,用户单击两个div元素,然后使用所选项目的数据进行API调用。出于某种原因,$.post函数正在触发我的$(“.objects”).click()调用,将窗口设置为这样。我起初以为这会导致双击(因为click函数依赖于元素中的数据,而窗口中没有),直到我进行了一些调试。这是我的密码: HTML:Javascript JQuery在窗口上触发点击后事件,javascript,html,jquery,dom,Javascript,Html,Jquery,Dom,我正在做一个非常简单的Jquery支持的事件,用户单击两个div元素,然后使用所选项目的数据进行API调用。出于某种原因,$.post函数正在触发我的$(“.objects”).click()调用,将窗口设置为这样。我起初以为这会导致双击(因为click函数依赖于元素中的数据,而窗口中没有),直到我进行了一些调试。这是我的密码: HTML: <div class="option-selection" data-value="1">Option
<div class="option-selection" data-value="1">Option 1</div>
<div class="option-selection" data-value="2">Option 2</div>
<div class="option-selection" data-value="3">Option 3</div>
<div class="option-selection" data-value="4">Option 4</div>
... etc ...
控制台输出:
CLICK ACTIVATED:
<div class="option-selection" data-value="5">…</div>
SELECTING ITEM 1
CLICK ACTIVATED:
<div class="option-selection" data-value="21">…</div>
SELECTING ITEM 2
ATTEMPTING TO POST ...
CLICK ACTIVATED:
Window {parent: Window, opener: null, top: Window, length: 1, frames: Window, …}
Uncaught TypeError: Cannot read property 'stopImmediatePropagation' of undefined
at 1:133
at i (jquery.min.js:2)
at qt (jquery.min.js:2)
at qt (jquery.min.js:2)
at Object.<anonymous> (jquery.min.js:2)
at Function.each (jquery.min.js:2)
at qt (jquery.min.js:2)
at qt (jquery.min.js:2)
at qt (jquery.min.js:2)
at qt (jquery.min.js:2)
点击激活:
…
选择项目1
单击“激活”:
…
选择项目2
正在尝试发布。。。
单击“激活”:
窗口{parent:Window,opener:null,top:Window,长度:1,frames:Window,…}
未捕获的TypeError:无法读取未定义的属性“StopImmediatePropaction”
1点133分
at i(jquery.min.js:2)
在qt(jquery.min.js:2)
在qt(jquery.min.js:2)
反对。(jquery.min.js:2)
在Function.each(jquery.min.js:2)
在qt(jquery.min.js:2)
在qt(jquery.min.js:2)
在qt(jquery.min.js:2)
在qt(jquery.min.js:2)
你知道这里发生了什么,怎么解决吗?我知道我可以检查元素是否是dom对象(我找到了一个函数),但它似乎不应该一开始就这样触发。尝试下面的代码
var选项1;
$(“.option selection”)。单击(函数(ev){
如果(选项_1){//检查是否选择了第一个选项
如果(选项_1==$(此)[0]){//检查第一个选定项是否不是当前项
log(“已选择选项”);
}否则{
log(“选择了2个不同的选项”);
//在这里运行您的POST call
//完成post调用后,您可以重置选项_1的值,以便用户可以在需要时为下一轮选择其他选项
选项_1=空;
console.log(“选项重置”);
}
}否则{
选项_1=$(此)[0];
log(“新选项”);
}
});代码>
。选项选择{
光标:指针;
}
选择1
选择2
选择3
选项4
似乎错误在其他地方。。。原因
function select_item_2(element) {
console.log("SELECTING ITEM 2");
... get data ...
console.log("ATTEMPTING TO POST ...");
$.post( ... );
}
CLICK ACTIVATED:
<div class="option-selection" data-value="5">…</div>
SELECTING ITEM 1
CLICK ACTIVATED:
<div class="option-selection" data-value="21">…</div>
SELECTING ITEM 2
ATTEMPTING TO POST ...
CLICK ACTIVATED:
Window {parent: Window, opener: null, top: Window, length: 1, frames: Window, …}
Uncaught TypeError: Cannot read property 'stopImmediatePropagation' of undefined
at 1:133
at i (jquery.min.js:2)
at qt (jquery.min.js:2)
at qt (jquery.min.js:2)
at Object.<anonymous> (jquery.min.js:2)
at Function.each (jquery.min.js:2)
at qt (jquery.min.js:2)
at qt (jquery.min.js:2)
at qt (jquery.min.js:2)
at qt (jquery.min.js:2)